Merge branch 'ipv6_stable_privacy_address'
[firefly-linux-kernel-4.4.55.git] / include / net / neighbour.h
index 14e3f017966b2654862decf88ad2835aa338dd22..bd33e66f49aad086784b2dd66cb054ea18e73c7a 100644 (file)
@@ -42,6 +42,7 @@ enum {
        NEIGH_VAR_MCAST_PROBES,
        NEIGH_VAR_UCAST_PROBES,
        NEIGH_VAR_APP_PROBES,
+       NEIGH_VAR_MCAST_REPROBES,
        NEIGH_VAR_RETRANS_TIME,
        NEIGH_VAR_BASE_REACHABLE_TIME,
        NEIGH_VAR_DELAY_PROBE_TIME,
@@ -65,9 +66,7 @@ enum {
 };
 
 struct neigh_parms {
-#ifdef CONFIG_NET_NS
-       struct net *net;
-#endif
+       possible_net_t net;
        struct net_device *dev;
        struct list_head list;
        int     (*neigh_setup)(struct neighbour *);
@@ -167,9 +166,7 @@ struct neigh_ops {
 
 struct pneigh_entry {
        struct pneigh_entry     *next;
-#ifdef CONFIG_NET_NS
-       struct net              *net;
-#endif
+       possible_net_t          net;
        struct net_device       *dev;
        u8                      flags;
        u8                      key[0];
@@ -226,6 +223,7 @@ enum {
        NEIGH_ND_TABLE = 1,
        NEIGH_DN_TABLE = 2,
        NEIGH_NR_TABLES,
+       NEIGH_LINK_TABLE = NEIGH_NR_TABLES /* Pseudo table for neigh_xmit */
 };
 
 static inline int neigh_parms_family(struct neigh_parms *p)
@@ -358,6 +356,7 @@ void neigh_for_each(struct neigh_table *tbl,
                    void (*cb)(struct neighbour *, void *), void *cookie);
 void __neigh_for_each_release(struct neigh_table *tbl,
                              int (*cb)(struct neighbour *));
+int neigh_xmit(int fam, struct net_device *, const void *, struct sk_buff *);
 void pneigh_for_each(struct neigh_table *tbl,
                     void (*cb)(struct pneigh_entry *));
 
@@ -511,4 +510,6 @@ static inline void neigh_ha_snapshot(char *dst, const struct neighbour *n,
                memcpy(dst, n->ha, dev->addr_len);
        } while (read_seqretry(&n->ha_lock, seq));
 }
+
+
 #endif