aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Sobolev <sobomax@FreeBSD.org>2002-12-07 14:22:05 +0000
committerMaxim Sobolev <sobomax@FreeBSD.org>2002-12-07 14:22:05 +0000
commit16199bf2d38bee2301699284d4b3b07b017e5b3f (patch)
tree6dd2021b60097b974c5f902ec8eee2201d2afdc8
parent3358dbd03913e8f93947dd296a3edecda5373494 (diff)
Notes
-rw-r--r--sys/net/if_gre.h7
-rw-r--r--sys/netinet/ip_gre.c3
2 files changed, 9 insertions, 1 deletions
diff --git a/sys/net/if_gre.h b/sys/net/if_gre.h
index a626ee7d95a7..8bed6a694419 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 d87e887d283e..a986b4aa3cac 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: