Hello.

Please pull the following changesets available at:
        git://git.skbuff.net/gitroot/yoshfuji/net-2.6.19-20060918-net/

HEADLINES
---------

    [XFRM]: Do not add a state whose SPI is zero to the SPI hash.
    [NET]: Move netlink interface bits to linux/if_link.h.
    [NET]: Include linux/if_link.h directly from the source file.
    [NET]: Include new rtnetlink headers for userspace backward compatibility.
    [NET]: Put {IFLA,IFA,NDA,NDTA}_{RTA,PAYLOAD}() macro back.
    [NET] KBUILD: Add missing entries for new net headers.

DIFFSTAT
--------

 include/linux/Kbuild      |   10 ++-
 include/linux/if.h        |  130 ------------------------------------------
 include/linux/if_addr.h   |    3 +
 include/linux/if_link.h   |  139 +++++++++++++++++++++++++++++++++++++++++++++
 include/linux/neighbour.h |    7 ++
 include/linux/rtnetlink.h |    7 ++
 net/bridge/br_netlink.c   |    1 
 net/core/rtnetlink.c      |    1 
 net/core/wireless.c       |    1 
 net/ipv6/addrconf.c       |    1 
 net/xfrm/xfrm_state.c     |   11 ++--
 11 files changed, 172 insertions(+), 139 deletions(-)

CHANGESETS
----------

commit 04b3eac83cccb7da663bd11a2b569f197bb3170e
Author: Masahide NAKAMURA <[EMAIL PROTECTED]>
Date:   Sun Sep 17 13:54:53 2006 +0900

    [XFRM]: Do not add a state whose SPI is zero to the SPI hash.
    
    SPI=0 is used for acquired IPsec SA and MIPv6 RO state.
    Such state should not be added to the SPI hash
    because we do not care about it on deleting path.
    
    Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
    Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 9f63edd..5f4a50e 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -96,9 +96,12 @@ static void xfrm_hash_transfer(struct hl
                                    nhashmask);
                hlist_add_head(&x->bysrc, nsrctable+h);
 
-               h = __xfrm_spi_hash(&x->id.daddr, x->id.spi, x->id.proto,
-                                   x->props.family, nhashmask);
-               hlist_add_head(&x->byspi, nspitable+h);
+               if (x->id.spi) {
+                       h = __xfrm_spi_hash(&x->id.daddr, x->id.spi,
+                                           x->id.proto, x->props.family,
+                                           nhashmask);
+                       hlist_add_head(&x->byspi, nspitable+h);
+               }
        }
 }
 
@@ -622,7 +625,7 @@ static void __xfrm_state_insert(struct x
        h = xfrm_src_hash(&x->props.saddr, x->props.family);
        hlist_add_head(&x->bysrc, xfrm_state_bysrc+h);
 
-       if (xfrm_id_proto_match(x->id.proto, IPSEC_PROTO_ANY)) {
+       if (x->id.spi) {
                h = xfrm_spi_hash(&x->id.daddr, x->id.spi, x->id.proto,
                                  x->props.family);
 

---
commit 44ad787528719604896754d1d05895d2dcfff88b
Author: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date:   Sun Sep 17 13:54:55 2006 +0900

    [NET]: Move netlink interface bits to linux/if_link.h.
    
    Moving netlink interface bits to linux/if.h is rather troublesome for
    applications including both linux/if.h (which was changed to be included
    from linux/rtnetlink.h automatically) and net/if.h.
    
    Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

diff --git a/include/linux/if.h b/include/linux/if.h
index cd080d7..ab85ed0 100644
--- a/include/linux/if.h
+++ b/include/linux/if.h
@@ -212,134 +212,4 @@ struct ifconf 
 #define        ifc_buf ifc_ifcu.ifcu_buf               /* buffer address       
*/
 #define        ifc_req ifc_ifcu.ifcu_req               /* array of structures  
*/
 
-/* The struct should be in sync with struct net_device_stats */
-struct rtnl_link_stats
-{
-       __u32   rx_packets;             /* total packets received       */
-       __u32   tx_packets;             /* total packets transmitted    */
-       __u32   rx_bytes;               /* total bytes received         */
-       __u32   tx_bytes;               /* total bytes transmitted      */
-       __u32   rx_errors;              /* bad packets received         */
-       __u32   tx_errors;              /* packet transmit problems     */
-       __u32   rx_dropped;             /* no space in linux buffers    */
-       __u32   tx_dropped;             /* no space available in linux  */
-       __u32   multicast;              /* multicast packets received   */
-       __u32   collisions;
-
-       /* detailed rx_errors: */
-       __u32   rx_length_errors;
-       __u32   rx_over_errors;         /* receiver ring buff overflow  */
-       __u32   rx_crc_errors;          /* recved pkt with crc error    */
-       __u32   rx_frame_errors;        /* recv'd frame alignment error */
-       __u32   rx_fifo_errors;         /* recv'r fifo overrun          */
-       __u32   rx_missed_errors;       /* receiver missed packet       */
-
-       /* detailed tx_errors */
-       __u32   tx_aborted_errors;
-       __u32   tx_carrier_errors;
-       __u32   tx_fifo_errors;
-       __u32   tx_heartbeat_errors;
-       __u32   tx_window_errors;
-
-       /* for cslip etc */
-       __u32   rx_compressed;
-       __u32   tx_compressed;
-};
-
-/* The struct should be in sync with struct ifmap */
-struct rtnl_link_ifmap
-{
-       __u64   mem_start;
-       __u64   mem_end;
-       __u64   base_addr;
-       __u16   irq;
-       __u8    dma;
-       __u8    port;
-};
-
-enum
-{
-       IFLA_UNSPEC,
-       IFLA_ADDRESS,
-       IFLA_BROADCAST,
-       IFLA_IFNAME,
-       IFLA_MTU,
-       IFLA_LINK,
-       IFLA_QDISC,
-       IFLA_STATS,
-       IFLA_COST,
-#define IFLA_COST IFLA_COST
-       IFLA_PRIORITY,
-#define IFLA_PRIORITY IFLA_PRIORITY
-       IFLA_MASTER,
-#define IFLA_MASTER IFLA_MASTER
-       IFLA_WIRELESS,          /* Wireless Extension event - see wireless.h */
-#define IFLA_WIRELESS IFLA_WIRELESS
-       IFLA_PROTINFO,          /* Protocol specific information for a link */
-#define IFLA_PROTINFO IFLA_PROTINFO
-       IFLA_TXQLEN,
-#define IFLA_TXQLEN IFLA_TXQLEN
-       IFLA_MAP,
-#define IFLA_MAP IFLA_MAP
-       IFLA_WEIGHT,
-#define IFLA_WEIGHT IFLA_WEIGHT
-       IFLA_OPERSTATE,
-       IFLA_LINKMODE,
-       __IFLA_MAX
-};
-
-
-#define IFLA_MAX (__IFLA_MAX - 1)
-
-/* ifi_flags.
-
-   IFF_* flags.
-
-   The only change is:
-   IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are
-   more not changeable by user. They describe link media
-   characteristics and set by device driver.
-
-   Comments:
-   - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid
-   - If neither of these three flags are set;
-     the interface is NBMA.
-
-   - IFF_MULTICAST does not mean anything special:
-   multicasts can be used on all not-NBMA links.
-   IFF_MULTICAST means that this media uses special encapsulation
-   for multicast frames. Apparently, all IFF_POINTOPOINT and
-   IFF_BROADCAST devices are able to use multicasts too.
- */
-
-/* IFLA_LINK.
-   For usual devices it is equal ifi_index.
-   If it is a "virtual interface" (f.e. tunnel), ifi_link
-   can point to real physical interface (f.e. for bandwidth calculations),
-   or maybe 0, what means, that real media is unknown (usual
-   for IPIP tunnels, when route to endpoint is allowed to change)
- */
-
-/* Subtype attributes for IFLA_PROTINFO */
-enum
-{
-       IFLA_INET6_UNSPEC,
-       IFLA_INET6_FLAGS,       /* link flags                   */
-       IFLA_INET6_CONF,        /* sysctl parameters            */
-       IFLA_INET6_STATS,       /* statistics                   */
-       IFLA_INET6_MCAST,       /* MC things. What of them?     */
-       IFLA_INET6_CACHEINFO,   /* time values and max reasm size */
-       __IFLA_INET6_MAX
-};
-
-#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
-
-struct ifla_cacheinfo
-{
-       __u32   max_reasm_len;
-       __u32   tstamp;         /* ipv6InterfaceTable updated timestamp */
-       __u32   reachable_time;
-       __u32   retrans_time;
-};
-
 #endif /* _LINUX_IF_H */
diff --git a/include/linux/if_link.h b/include/linux/if_link.h
new file mode 100644
index 0000000..e963a07
--- /dev/null
+++ b/include/linux/if_link.h
@@ -0,0 +1,136 @@
+#ifndef _LINUX_IF_LINK_H
+#define _LINUX_IF_LINK_H
+
+#include <linux/netlink.h>
+
+/* The struct should be in sync with struct net_device_stats */
+struct rtnl_link_stats
+{
+       __u32   rx_packets;             /* total packets received       */
+       __u32   tx_packets;             /* total packets transmitted    */
+       __u32   rx_bytes;               /* total bytes received         */
+       __u32   tx_bytes;               /* total bytes transmitted      */
+       __u32   rx_errors;              /* bad packets received         */
+       __u32   tx_errors;              /* packet transmit problems     */
+       __u32   rx_dropped;             /* no space in linux buffers    */
+       __u32   tx_dropped;             /* no space available in linux  */
+       __u32   multicast;              /* multicast packets received   */
+       __u32   collisions;
+
+       /* detailed rx_errors: */
+       __u32   rx_length_errors;
+       __u32   rx_over_errors;         /* receiver ring buff overflow  */
+       __u32   rx_crc_errors;          /* recved pkt with crc error    */
+       __u32   rx_frame_errors;        /* recv'd frame alignment error */
+       __u32   rx_fifo_errors;         /* recv'r fifo overrun          */
+       __u32   rx_missed_errors;       /* receiver missed packet       */
+
+       /* detailed tx_errors */
+       __u32   tx_aborted_errors;
+       __u32   tx_carrier_errors;
+       __u32   tx_fifo_errors;
+       __u32   tx_heartbeat_errors;
+       __u32   tx_window_errors;
+
+       /* for cslip etc */
+       __u32   rx_compressed;
+       __u32   tx_compressed;
+};
+
+/* The struct should be in sync with struct ifmap */
+struct rtnl_link_ifmap
+{
+       __u64   mem_start;
+       __u64   mem_end;
+       __u64   base_addr;
+       __u16   irq;
+       __u8    dma;
+       __u8    port;
+};
+
+enum
+{
+       IFLA_UNSPEC,
+       IFLA_ADDRESS,
+       IFLA_BROADCAST,
+       IFLA_IFNAME,
+       IFLA_MTU,
+       IFLA_LINK,
+       IFLA_QDISC,
+       IFLA_STATS,
+       IFLA_COST,
+#define IFLA_COST IFLA_COST
+       IFLA_PRIORITY,
+#define IFLA_PRIORITY IFLA_PRIORITY
+       IFLA_MASTER,
+#define IFLA_MASTER IFLA_MASTER
+       IFLA_WIRELESS,          /* Wireless Extension event - see wireless.h */
+#define IFLA_WIRELESS IFLA_WIRELESS
+       IFLA_PROTINFO,          /* Protocol specific information for a link */
+#define IFLA_PROTINFO IFLA_PROTINFO
+       IFLA_TXQLEN,
+#define IFLA_TXQLEN IFLA_TXQLEN
+       IFLA_MAP,
+#define IFLA_MAP IFLA_MAP
+       IFLA_WEIGHT,
+#define IFLA_WEIGHT IFLA_WEIGHT
+       IFLA_OPERSTATE,
+       IFLA_LINKMODE,
+       __IFLA_MAX
+};
+
+
+#define IFLA_MAX (__IFLA_MAX - 1)
+
+/* ifi_flags.
+
+   IFF_* flags.
+
+   The only change is:
+   IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are
+   more not changeable by user. They describe link media
+   characteristics and set by device driver.
+
+   Comments:
+   - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid
+   - If neither of these three flags are set;
+     the interface is NBMA.
+
+   - IFF_MULTICAST does not mean anything special:
+   multicasts can be used on all not-NBMA links.
+   IFF_MULTICAST means that this media uses special encapsulation
+   for multicast frames. Apparently, all IFF_POINTOPOINT and
+   IFF_BROADCAST devices are able to use multicasts too.
+ */
+
+/* IFLA_LINK.
+   For usual devices it is equal ifi_index.
+   If it is a "virtual interface" (f.e. tunnel), ifi_link
+   can point to real physical interface (f.e. for bandwidth calculations),
+   or maybe 0, what means, that real media is unknown (usual
+   for IPIP tunnels, when route to endpoint is allowed to change)
+ */
+
+/* Subtype attributes for IFLA_PROTINFO */
+enum
+{
+       IFLA_INET6_UNSPEC,
+       IFLA_INET6_FLAGS,       /* link flags                   */
+       IFLA_INET6_CONF,        /* sysctl parameters            */
+       IFLA_INET6_STATS,       /* statistics                   */
+       IFLA_INET6_MCAST,       /* MC things. What of them?     */
+       IFLA_INET6_CACHEINFO,   /* time values and max reasm size */
+       __IFLA_INET6_MAX
+};
+
+#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
+
+struct ifla_cacheinfo
+{
+       __u32   max_reasm_len;
+       __u32   tstamp;         /* ipv6InterfaceTable updated timestamp */
+       __u32   reachable_time;
+       __u32   retrans_time;
+};
+
+#endif /* _LINUX_IF_LINK_H */
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index 9c92dc8..3a18add 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -2,7 +2,7 @@ #ifndef __LINUX_RTNETLINK_H
 #define __LINUX_RTNETLINK_H
 
 #include <linux/netlink.h>
-#include <linux/if.h>
+#include <linux/if_link.h>
 
 /****
  *             Routing/neighbour discovery messages.

---
commit 41515f19f24841876c5e82eef940cf18f3c82455
Author: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date:   Sun Sep 17 13:54:58 2006 +0900

    [NET]: Include linux/if_link.h directly from the source file.
    
    For consistent use of other netlink bits, include new
    linux/if_link.h directly from the source file, not through
    linux/rtnetlink.h.
    
    Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
index 8f66119..f55c8d3 100644
--- a/net/bridge/br_netlink.c
+++ b/net/bridge/br_netlink.c
@@ -12,6 +12,7 @@
 
 #include <linux/kernel.h>
 #include <linux/rtnetlink.h>
+#include <linux/if_link.h>
 #include <net/netlink.h>
 #include "br_private.h"
 
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index d8e25e0..9969cfd 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -35,6 +35,7 @@ #include <linux/skbuff.h>
 #include <linux/init.h>
 #include <linux/security.h>
 #include <linux/mutex.h>
+#include <linux/if_link.h>
 #include <linux/if_addr.h>
 
 #include <asm/uaccess.h>
diff --git a/net/core/wireless.c b/net/core/wireless.c
index 3168fca..3be6457 100644
--- a/net/core/wireless.c
+++ b/net/core/wireless.c
@@ -79,6 +79,7 @@ #include <linux/proc_fs.h>
 #include <linux/rtnetlink.h>           /* rtnetlink stuff */
 #include <linux/seq_file.h>
 #include <linux/init.h>                        /* for __init */
+#include <linux/if_link.h>             /* IFLA_WIRELESS */
 #include <linux/if_arp.h>              /* ARPHRD_ETHER */
 #include <linux/etherdevice.h>         /* compare_ether_addr */
 #include <linux/interrupt.h>
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index fc9cff3..5cf5253 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -48,6 +48,7 @@ #include <linux/sched.h>
 #include <linux/net.h>
 #include <linux/in6.h>
 #include <linux/netdevice.h>
+#include <linux/if_link.h>
 #include <linux/if_addr.h>
 #include <linux/if_arp.h>
 #include <linux/if_arcnet.h>

---
commit c9b734ff1d4ec9f264d7157d343a90240a188aae
Author: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date:   Sun Sep 17 13:55:00 2006 +0900

    [NET]: Include new rtnetlink headers for userspace backward compatibility.
    
    Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index 3a18add..8ec375c 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -2,7 +2,12 @@ #ifndef __LINUX_RTNETLINK_H
 #define __LINUX_RTNETLINK_H
 
 #include <linux/netlink.h>
+#ifndef __KERNEL__
+/* Backward compatibility */
 #include <linux/if_link.h>
+#include <linux/if_addr.h>
+#include <linux/neighbour.h>
+#endif
 
 /****
  *             Routing/neighbour discovery messages.

---
commit 55a08a9078b243a06223222735580df9e11a5fa6
Author: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date:   Sun Sep 17 13:55:02 2006 +0900

    [NET]: Put {IFLA,IFA,NDA,NDTA}_{RTA,PAYLOAD}() macro back.
    
    These macros are still used by userspace applications.
    
    Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

diff --git a/include/linux/if_addr.h b/include/linux/if_addr.h
index e159045..a51b2d3 100644
--- a/include/linux/if_addr.h
+++ b/include/linux/if_addr.h
@@ -50,4 +50,7 @@ struct ifa_cacheinfo
        __u32   tstamp; /* updated timestamp, hundredths of seconds */
 };
 
+#define IFA_RTA(r)     ((struct rtattr*)(((char*)(r)) + 
NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
+#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg))
+
 #endif
diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index e963a07..bce8b98 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h
@@ -133,4 +133,7 @@ struct ifla_cacheinfo
        __u32   retrans_time;
 };
 
+#define IFLA_RTA(r)    ((struct rtattr*)(((char*)(r)) + 
NLMSG_ALIGN(sizeof(struct ifinfomsg))))
+#define IFLA_PAYLOAD(n)        NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
+
 #endif /* _LINUX_IF_LINK_H */
diff --git a/include/linux/neighbour.h b/include/linux/neighbour.h
index bd3bbf6..7476739 100644
--- a/include/linux/neighbour.h
+++ b/include/linux/neighbour.h
@@ -26,6 +26,9 @@ enum
 
 #define NDA_MAX (__NDA_MAX - 1)
 
+#define NDA_RTA(r)     ((struct rtattr*)(((char*)(r)) + 
NLMSG_ALIGN(sizeof(struct ndmsg))))
+#define NDA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ndmsg))
+
 /*
  *     Neighbor Cache Entry Flags
  */
@@ -156,4 +159,8 @@ enum {
 };
 #define NDTA_MAX (__NDTA_MAX - 1)
 
+#define NDTA_RTA(r) ((struct rtattr*)(((char*)(r)) + \
+                    NLMSG_ALIGN(sizeof(struct ndtmsg))))
+#define NDTA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ndtmsg))
+
 #endif

---
commit 1afcf9543d447ab3622ff4ecaacfa6baf83870b8
Author: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date:   Sun Sep 17 13:55:04 2006 +0900

    [NET] KBUILD: Add missing entries for new net headers.
    
    Add the following for userspace export by the 'headers_include'
    make target: linux/fib_rules.h, linux/if_addr.h, linux/if_link.h,
    linux/neighbour.h.
    
    Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 2b8a7d6..83375cd 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -10,16 +10,18 @@ header-y += affs_fs.h affs_hardblocks.h 
        bpqether.h cdk.h chio.h coda_psdev.h coff.h comstats.h          \
        consolemap.h cycx_cfm.h dm-ioctl.h dn.h dqblk_v1.h              \
        dqblk_v2.h dqblk_xfs.h efs_fs_sb.h elf-fdpic.h elf.h elf-em.h   \
-       fadvise.h fd.h fdreg.h ftape-header-segment.h ftape-vendors.h   \
+       fadvise.h fd.h fdreg.h fib_rules.h                              \
+       ftape-header-segment.h ftape-vendors.h                          \
        fuse.h futex.h genetlink.h gen_stats.h gigaset_dev.h hdsmart.h  \
-       hpfs_fs.h hysdn_if.h i2c-dev.h i8k.h icmp.h                     \
+       hpfs_fs.h hysdn_if.h i2c-dev.h i8k.h icmp.h if_addr.h           \
        if_arcnet.h if_arp.h if_bonding.h if_cablemodem.h if_fc.h       \
-       if_fddi.h if.h if_hippi.h if_infiniband.h if_packet.h           \
+       if_fddi.h if.h if_hippi.h if_infiniband.h if_link.h if_packet.h \
        if_plip.h if_ppp.h if_slip.h if_strip.h if_tunnel.h in6.h       \
        in_route.h ioctl.h ip.h ipmi_msgdefs.h ip_mp_alg.h ipsec.h      \
        ipx.h irda.h isdn_divertif.h iso_fs.h ite_gpio.h ixjuser.h      \
        jffs2.h keyctl.h limits.h major.h matroxfb.h meye.h minix_fs.h  \
-       mmtimer.h mqueue.h mtio.h ncp_no.h netfilter_arp.h netrom.h     \
+       mmtimer.h mqueue.h mtio.h ncp_no.h neighbour.h                  \
+       netfilter_arp.h netrom.h                                        \
        nfs2.h nfs4_mount.h nfs_mount.h openprom_fs.h param.h           \
        pci_ids.h pci_regs.h personality.h pfkeyv2.h pg.h pkt_cls.h     \
        pkt_sched.h posix_types.h ppdev.h prctl.h ps2esdi.h qic117.h    \

---

-- 
YOSHIFUJI Hideaki @ USAGI Project  <[EMAIL PROTECTED]>
GPG-FP  : 9022 65EB 1ECF 3AD1 0BDF  80D8 4807 F894 E062 0EEA
-
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