Date: 12 Dec 2003 17:35:50 -0000 From: John Narron <jnarron@cdsinet.net> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/60183: No WCCPv2 support in gre Message-ID: <20031212173550.78358.qmail@radius2.cdsinet.net> Resent-Message-ID: <200312121740.hBCHeI4U084666@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 60183 >Category: kern >Synopsis: No WCCPv2 support in gre >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri Dec 12 09:40:18 PST 2003 >Closed-Date: >Last-Modified: >Originator: John Narron >Release: FreeBSD 5.1-RELEASE-p11 i386 >Organization: CDS/CDSinet, LLC >Environment: System: FreeBSD radius2.cdsinet.net 5.1-RELEASE-p11 FreeBSD 5.1-RELEASE-p11 #14: Thu Dec 11 16:16:13 CST 2003 zeek@radius2.cdsinet.net:/usr/obj/usr/src/sys/RADIUS i386 >Description: The gre driver has support for WCCP, but lacks WCCPv2 support. WCCPv2 packets, when arriving on a gre device, appear as IPv0 packets. >How-To-Repeat: Can't repeat something that isn't supported now can we? >Fix: Attached is a patch to check if m->m_data+hlen is a IPv4 header. If so its assumed the packet is WCCPv1, otherwise its WCCPv2 and hlen is incremented by 4. --- ip_gre.c Fri Dec 12 16:50:49 2003 +++ ip_gre.c.wccpv2 Fri Dec 12 16:58:13 2003 @@ -172,8 +172,26 @@ switch (ntohs(gip->gi_ptype)) { /* ethertypes */ case ETHERTYPE_IP: /* shouldn't need a schednetisr(), as */ + isr = NETISR_IP; + break; case WCCP_PROTOCOL_TYPE: /* we are in ip_input */ - isr = NETISR_IP; + isr = NETISR_IP; + /* + * jnarron@cdsinet.net + * WCCPv1 and WCCPv2 packet encapsulations differ by 4 octets + * WCCPv2 adds: + * octet 0: Flags + * octet 1: Service ID + * octet 2: Reserved? + * octet 3: Primary bucket index + * + * So far I haven't found any use for those 4 octets, so for now + * we just strip them out and move on. + */ + + if(!((*(m->m_data + hlen)) & 0x40)) + hlen += 4; + break; #ifdef NETATALK case ETHERTYPE_ATALK: >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031212173550.78358.qmail>