These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / net / ieee802154 / 6lowpan / 6lowpan_i.h
index e50f69d..b4e17a7 100644 (file)
@@ -5,6 +5,16 @@
 
 #include <net/ieee802154_netdev.h>
 #include <net/inet_frag.h>
+#include <net/6lowpan.h>
+
+typedef unsigned __bitwise__ lowpan_rx_result;
+#define RX_CONTINUE            ((__force lowpan_rx_result) 0u)
+#define RX_DROP_UNUSABLE       ((__force lowpan_rx_result) 1u)
+#define RX_DROP                        ((__force lowpan_rx_result) 2u)
+#define RX_QUEUED              ((__force lowpan_rx_result) 3u)
+
+#define LOWPAN_DISPATCH_FRAG1           0xc0
+#define LOWPAN_DISPATCH_FRAGN           0xe0
 
 struct lowpan_create_arg {
        u16 tag;
@@ -37,26 +47,18 @@ static inline u32 ieee802154_addr_hash(const struct ieee802154_addr *a)
        }
 }
 
-struct lowpan_dev_record {
-       struct net_device *ldev;
-       struct list_head list;
-};
-
 /* private device info */
 struct lowpan_dev_info {
-       struct net_device       *real_dev; /* real WPAN device ptr */
-       struct mutex            dev_list_mtx; /* mutex for list ops */
+       struct net_device       *wdev; /* wpan device ptr */
        u16                     fragment_tag;
 };
 
 static inline struct
 lowpan_dev_info *lowpan_dev_info(const struct net_device *dev)
 {
-       return netdev_priv(dev);
+       return (struct lowpan_dev_info *)lowpan_priv(dev)->priv;
 }
 
-extern struct list_head lowpan_devices;
-
 int lowpan_frag_rcv(struct sk_buff *skb, const u8 frag_type);
 void lowpan_net_frag_exit(void);
 int lowpan_net_frag_init(void);
@@ -69,4 +71,7 @@ int lowpan_header_create(struct sk_buff *skb, struct net_device *dev,
                         const void *_saddr, unsigned int len);
 netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *dev);
 
+int lowpan_iphc_decompress(struct sk_buff *skb);
+lowpan_rx_result lowpan_rx_h_ipv6(struct sk_buff *skb);
+
 #endif /* __IEEE802154_6LOWPAN_I_H__ */