diff options
author | sobomax <sobomax@FreeBSD.org> | 2002-12-07 14:22:05 +0000 |
---|---|---|
committer | sobomax <sobomax@FreeBSD.org> | 2002-12-07 14:22:05 +0000 |
commit | 6da27e4c8e8646fdac92c74cab95a0db6816b98c (patch) | |
tree | 6dd2021b60097b974c5f902ec8eee2201d2afdc8 /sys | |
parent | fde222f25cb9c2cdf9187934c25fdc3f21417e9a (diff) | |
download | FreeBSD-src-6da27e4c8e8646fdac92c74cab95a0db6816b98c.zip FreeBSD-src-6da27e4c8e8646fdac92c74cab95a0db6816b98c.tar.gz |
MFS: recognize gre packets used in the WCCP protocol.
Approved by: re
Diffstat (limited to 'sys')
-rw-r--r-- | sys/net/if_gre.h | 7 | ||||
-rw-r--r-- | sys/netinet/ip_gre.c | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/sys/net/if_gre.h b/sys/net/if_gre.h index a626ee7..8bed6a6 100644 --- a/sys/net/if_gre.h +++ b/sys/net/if_gre.h @@ -105,6 +105,13 @@ struct greip { #define GRE_SS 0x0800 /* Strict Source Route */ /* + * CISCO uses special type for GRE tunnel created as part of WCCP + * connection, while in fact those packets are just IPv4 encapsulated + * into GRE. + */ +#define WCCP_PROTOCOL_TYPE 0x883E + +/* * gre_sre defines a Source route Entry. These are needed if packets * should be routed over more than one tunnel hop by hop */ diff --git a/sys/netinet/ip_gre.c b/sys/netinet/ip_gre.c index d87e887..a986b4a 100644 --- a/sys/netinet/ip_gre.c +++ b/sys/netinet/ip_gre.c @@ -179,7 +179,8 @@ gre_input2(struct mbuf *m ,int hlen, u_char proto) switch (ntohs(gip->gi_ptype)) { /* ethertypes */ case ETHERTYPE_IP: /* shouldn't need a schednetisr(), as */ - ifq = &ipintrq; /* we are in ip_input */ + case WCCP_PROTOCOL_TYPE: /* we are in ip_input */ + ifq = &ipintrq; break; #ifdef NS case ETHERTYPE_NS: |