[IPV6]: Bring Type 0 routing header in-line with rfc3542.
authorBrian Haley <brian.haley@hp.com>
Sat, 10 Sep 2005 07:15:06 +0000 (00:15 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 10 Sep 2005 07:15:06 +0000 (00:15 -0700)
Signed-off-by: Brian Haley <brian.haley@hp.com>
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/ipv6.h
net/ipv6/exthdrs.c
net/ipv6/netfilter/ip6t_rt.c

index 6c5f7b3..bb6f88e 100644 (file)
@@ -68,7 +68,7 @@ struct ipv6_opt_hdr {
 
 struct rt0_hdr {
        struct ipv6_rt_hdr      rt_hdr;
-       __u32                   bitmap;         /* strict/loose bit map */
+       __u32                   reserved;
        struct in6_addr         addr[0];
 
 #define rt0_type               rt_hdr.type
index 4712272..9225495 100644 (file)
@@ -406,8 +406,7 @@ ipv6_invert_rthdr(struct sock *sk, struct ipv6_rt_hdr *hdr)
 
        memcpy(opt->srcrt, hdr, sizeof(*hdr));
        irthdr = (struct rt0_hdr*)opt->srcrt;
-       /* Obsolete field, MBZ, when originated by us */
-       irthdr->bitmap = 0;
+       irthdr->reserved = 0;
        opt->srcrt->segments_left = n;
        for (i=0; i<n; i++)
                memcpy(irthdr->addr+i, rthdr->addr+(n-1-i), 16);
index a9526b7..2bb6700 100644 (file)
@@ -161,8 +161,8 @@ match(const struct sk_buff *skb,
                            ((rtinfo->hdrlen == hdrlen) ^
                            !!(rtinfo->invflags & IP6T_RT_INV_LEN))));
        DEBUGP("res %02X %02X %02X ", 
-                       (rtinfo->flags & IP6T_RT_RES), ((struct rt0_hdr *)rh)->bitmap,
-                       !((rtinfo->flags & IP6T_RT_RES) && (((struct rt0_hdr *)rh)->bitmap)));
+                       (rtinfo->flags & IP6T_RT_RES), ((struct rt0_hdr *)rh)->reserved,
+                       !((rtinfo->flags & IP6T_RT_RES) && (((struct rt0_hdr *)rh)->reserved)));
 
        ret = (rh != NULL)
                        &&
@@ -179,12 +179,12 @@ match(const struct sk_buff *skb,
                            !!(rtinfo->invflags & IP6T_RT_INV_TYP)));
 
        if (ret && (rtinfo->flags & IP6T_RT_RES)) {
-               u_int32_t *bp, _bitmap;
-               bp = skb_header_pointer(skb,
-                                       ptr + offsetof(struct rt0_hdr, bitmap),
-                                       sizeof(_bitmap), &_bitmap);
+               u_int32_t *rp, _reserved;
+               rp = skb_header_pointer(skb,
+                                       ptr + offsetof(struct rt0_hdr, reserved),
+                                       sizeof(_reserved), &_reserved);
 
-               ret = (*bp == 0);
+               ret = (*rp == 0);
        }
 
        DEBUGP("#%d ",rtinfo->addrnr);