28 #include <linux/export.h>
37 #define BNEP_TX_QUEUE_LEN 20
41 netif_start_queue(dev);
47 netif_stop_queue(dev);
53 #ifdef CONFIG_BT_BNEP_MC_FILTER
65 BT_ERR(
"%s Multicast list allocation failed", dev->
name);
69 r = (
void *) skb->data;
70 __skb_put(skb,
sizeof(*r));
84 int i,
len = skb->len;
110 static int bnep_net_set_mac_addr(
struct net_device *dev,
void *
arg)
116 static void bnep_net_timeout(
struct net_device *dev)
119 netif_wake_queue(dev);
122 #ifdef CONFIG_BT_BNEP_MC_FILTER
133 #ifdef CONFIG_BT_BNEP_PROTO_FILTER
135 static u16 bnep_net_eth_proto(
struct sk_buff *skb)
151 u16 proto = bnep_net_eth_proto(skb);
156 if (proto >= f[i].start && proto <= f[i].
end)
160 BT_DBG(
"BNEP: filtered skb %p, proto 0x%.4x", skb, proto);
171 BT_DBG(
"skb %p, dev %p", skb, dev);
173 #ifdef CONFIG_BT_BNEP_MC_FILTER
174 if (bnep_net_mc_filter(skb, s)) {
180 #ifdef CONFIG_BT_BNEP_PROTO_FILTER
181 if (bnep_net_proto_filter(skb, s)) {
197 BT_DBG(
"tx queue is full");
201 netif_stop_queue(dev);
208 .ndo_open = bnep_net_open,
209 .ndo_stop = bnep_net_close,
210 .ndo_start_xmit = bnep_net_xmit,
212 .ndo_set_rx_mode = bnep_net_set_mc_list,
213 .ndo_set_mac_address = bnep_net_set_mac_addr,
214 .ndo_tx_timeout = bnep_net_timeout,