diff options
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/ip_gre.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/netinet/ip_gre.c b/sys/netinet/ip_gre.c index 1abef16..ad9ed30 100644 --- a/sys/netinet/ip_gre.c +++ b/sys/netinet/ip_gre.c @@ -177,9 +177,12 @@ gre_input2(struct mbuf *m ,int hlen, u_char proto) hlen += 4; switch (ntohs(gip->gi_ptype)) { /* ethertypes */ - case ETHERTYPE_IP: /* shouldn't need a schednetisr(), as */ - case WCCP_PROTOCOL_TYPE: /* we are in ip_input */ - isr = NETISR_IP; + case WCCP_PROTOCOL_TYPE: + if (sc->wccp_ver == WCCP_V2) + hlen += 4; + /* FALLTHROUGH */ + case ETHERTYPE_IP: /* shouldn't need a schednetisr(), */ + isr = NETISR_IP;/* as we are in ip_input */ break; #ifdef NETATALK case ETHERTYPE_ATALK: |