Preliminary wccp support for ip_gre
Subsystems (2)
RFC 1/1 Preliminary wccp support for ip_gre
Please, can you give a comments on this piece of code?
I haven't attached any turning knobs to it but I will do so when I'll figure out what knobs and how :)
net/ipv4/ip_gre.c +11 -1
@@ -553,6 +553,8 @@return INET_ECN_encapsulate (tos, inner); } +#define ETH_P_WCCP 0x883E +int ipgre_rcv (struct sk_buff *skb) {struct iphdr *iph;
@@ -605,13 +607,21 @@if ((tunnel =ipgre_tunnel_lookup (iph->saddr, iph->daddr, key)) !=NULL ) {secpath_reset (skb); + skb->protocol = *(u16 *)(h +2 ); +if (1 ) { +if ((flags ==0 ) && (skb->protocol ==__constant_htons (ETH_P_WCCP ))) { + skb->protocol =__constant_htons (ETH_P_IP ); +if ((*(h + offset) &0xF0 ) !=0x40 ) + offset +=4 ; + } + } + skb->mac.raw = skb->nh.raw; skb->nh.raw =__pskb_pull (skb, offset);memset (&(IPCB (skb)->opt),0 ,sizeof (struct ip_options ));if (skb->ip_summed ==CHECKSUM_HW ) skb->csum =csum_sub (skb->csum,csum_partial (skb->mac.raw, skb->nh.raw-skb->mac.raw,0 )); - skb->protocol = *(u16 *)(h +2 ); skb->pkt_type =PACKET_HOST ;#ifdef CONFIG_NET_IPGRE_BROADCAST if (MULTICAST (iph->daddr)) {
Signature · 2 lines
Paul P 'Stingray' Komkoff Jr // http://stingr.net/key <- my pgp key This message represents the official view of the voices in my head