1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23#ifndef MAC802154_H
24#define MAC802154_H
25
26
27struct mac802154_priv {
28 struct ieee802154_dev hw;
29 struct ieee802154_ops *ops;
30
31
32 struct wpan_phy *phy;
33
34 int open_count;
35
36
37
38
39
40
41
42
43 struct list_head slaves;
44 struct mutex slaves_mtx;
45
46
47
48
49 struct workqueue_struct *dev_workqueue;
50
51
52
53
54
55 bool running;
56};
57
58#define MAC802154_DEVICE_STOPPED 0x00
59#define MAC802154_DEVICE_RUN 0x01
60
61
62
63
64
65
66
67struct mac802154_sub_if_data {
68 struct list_head list;
69
70 struct mac802154_priv *hw;
71 struct net_device *dev;
72
73 int type;
74
75 spinlock_t mib_lock;
76
77 __le16 pan_id;
78 __le16 short_addr;
79
80 u8 chan;
81 u8 page;
82
83
84 u8 bsn;
85
86 u8 dsn;
87};
88
89#define mac802154_to_priv(_hw) container_of(_hw, struct mac802154_priv, hw)
90
91#define MAC802154_MAX_XMIT_ATTEMPTS 3
92
93#define MAC802154_CHAN_NONE (~(u8)0)
94
95extern struct ieee802154_reduced_mlme_ops mac802154_mlme_reduced;
96extern struct ieee802154_mlme_ops mac802154_mlme_wpan;
97
98int mac802154_slave_open(struct net_device *dev);
99int mac802154_slave_close(struct net_device *dev);
100
101void mac802154_monitors_rx(struct mac802154_priv *priv, struct sk_buff *skb);
102void mac802154_monitor_setup(struct net_device *dev);
103
104void mac802154_wpans_rx(struct mac802154_priv *priv, struct sk_buff *skb);
105void mac802154_wpan_setup(struct net_device *dev);
106
107netdev_tx_t mac802154_tx(struct mac802154_priv *priv, struct sk_buff *skb,
108 u8 page, u8 chan);
109
110
111void mac802154_dev_set_short_addr(struct net_device *dev, u16 val);
112u16 mac802154_dev_get_short_addr(const struct net_device *dev);
113void mac802154_dev_set_ieee_addr(struct net_device *dev);
114u16 mac802154_dev_get_pan_id(const struct net_device *dev);
115void mac802154_dev_set_pan_id(struct net_device *dev, u16 val);
116void mac802154_dev_set_page_channel(struct net_device *dev, u8 page, u8 chan);
117
118#endif
119