This patch updates the Linux the Intra-Site Automatic Tunnel Addressing
Protocol (ISATAP) implementation. It places the ISATAP potential router
list (PRL) in the kernel and adds three new private ioctls for PRL
management. The diffs are specific to the netdev net-2.6.25 development
tree taken by "git pull" on 1/14/08.

Signed-off-by: Fred L. Templin <[EMAIL PROTECTED]>

--- net-2.6.25/include/linux/skbuff.h.orig      2008-01-14 15:33:36.000000000 
-0800
+++ net-2.6.25/include/linux/skbuff.h   2008-01-14 15:43:06.000000000 -0800
@@ -311,7 +311,8 @@ struct sk_buff {
        __u16                   tc_verd;        /* traffic control verdict */
 #endif
 #endif
-       /* 2 byte hole */
+       __u8                    rtr_type;
+       /* 1 byte hole */
 
 #ifdef CONFIG_NET_DMA
        dma_cookie_t            dma_cookie;
--- net-2.6.25/include/linux/if_tunnel.h.orig   2008-01-14 15:33:36.000000000 
-0800
+++ net-2.6.25/include/linux/if_tunnel.h        2008-01-14 15:42:14.000000000 
-0800
@@ -7,6 +7,9 @@
 #define SIOCADDTUNNEL   (SIOCDEVPRIVATE + 1)
 #define SIOCDELTUNNEL   (SIOCDEVPRIVATE + 2)
 #define SIOCCHGTUNNEL   (SIOCDEVPRIVATE + 3)
+#define SIOCADDPRL      (SIOCDEVPRIVATE + 4)
+#define SIOCDELPRL      (SIOCDEVPRIVATE + 5)
+#define SIOCCHGPRL      (SIOCDEVPRIVATE + 6)
 
 #define GRE_CSUM       __constant_htons(0x8000)
 #define GRE_ROUTING    __constant_htons(0x4000)
@@ -17,9 +20,6 @@
 #define GRE_FLAGS      __constant_htons(0x00F8)
 #define GRE_VERSION    __constant_htons(0x0007)
 
-/* i_flags values for SIT mode */
-#define        SIT_ISATAP      0x0001
-
 struct ip_tunnel_parm
 {
        char                    name[IFNAMSIZ];
@@ -30,5 +30,15 @@ struct ip_tunnel_parm
        __be32                  o_key;
        struct iphdr            iph;
 };
+/* SIT-mode i_flags */
+#define        SIT_ISATAP      0x0001
+
+struct ip_tunnel_prladdr {
+       __be32                  addr;
+       __be16                  flags;
+       __be16                  rsvd;
+};
+/* PRL flags */
+#define        PRL_BORDER              0x0001
 
 #endif /* _IF_TUNNEL_H_ */
--- net-2.6.25/include/net/ipip.h.orig  2008-01-14 15:33:36.000000000 -0800
+++ net-2.6.25/include/net/ipip.h       2008-01-14 15:41:21.000000000 -0800
@@ -24,6 +24,13 @@ struct ip_tunnel
        int                     mlink;
 
        struct ip_tunnel_parm   parms;
+       struct ip_tunnel_prlent *prl;           /* potential router list */
+};
+
+struct ip_tunnel_prlent
+{
+       struct ip_tunnel_prlent *next;
+       struct ip_tunnel_prladdr ent;
 };
 
 #define IPTUNNEL_XMIT() do {                                           \
--- net-2.6.25/include/net/ndisc.h.orig 2008-01-14 15:40:28.000000000 -0800
+++ net-2.6.25/include/net/ndisc.h      2008-01-15 08:43:21.000000000 -0800
@@ -12,6 +12,16 @@
 #define NDISC_REDIRECT                 137
 
 /*
+ * Router type: cross-layer information from link-layer to
+ * IPv6 layer reported by certain link types (e.g., RFC4214).
+ */
+
+#define RTRTYPE_UNSPEC                 0 /* unspecified (default) */
+#define RTRTYPE_HOST                   1 /* host or unauthorized router */
+#define RTRTYPE_INTERIOR               2 /* site-interior router */
+#define RTRTYPE_BORDER                 3 /* site border router */
+
+/*
  *     ndisc options
  */
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to