12 #include <linux/errno.h>
13 #include <linux/types.h>
14 #include <linux/socket.h>
16 #include <linux/kernel.h>
18 #include <linux/string.h>
20 #include <linux/net.h>
21 #include <linux/slab.h>
24 #include <linux/netdevice.h>
26 #include <linux/netfilter.h>
29 #include <asm/uaccess.h>
30 #include <linux/fcntl.h>
64 skb_reset_network_header(skbn);
65 skb_reset_transport_header(skbn);
69 skb_copy_from_linear_data(skbo,
109 if (skb ==
NULL)
return 0;
128 skb_reset_network_header(skb);
137 return ax25_rx_fragment(ax25, skb);
146 if ((!ax25->
pidincl && ax25->
sk->sk_protocol == pid) ||
161 static int ax25_process_rx_frame(
ax25_cb *ax25,
struct sk_buff *skb,
int type,
int dama)
174 #ifdef CONFIG_AX25_DAMA_SLAVE
175 case AX25_PROTO_DAMA_SLAVE:
176 if (dama || ax25->
ax25_dev->dama.slave)
191 int type = 0, mine = 0, dama;
201 skb_reset_transport_header(skb);
203 if ((ax25_dev = ax25_dev_ax25dev(dev)) ==
NULL)
234 skb_set_transport_header(skb, 2);
242 switch (skb->
data[1]) {
245 skb_reset_transport_header(skb);
246 skb_reset_network_header(skb);
255 skb_reset_transport_header(skb);
256 skb_reset_network_header(skb);
314 if (ax25_process_rx_frame(ax25, skb, type, dama) == 0)
346 if (sk_acceptq_is_full(sk) ||
358 skb_set_owner_r(skb, make);
410 #ifdef CONFIG_AX25_DAMA_SLAVE
442 if (!net_eq(dev_net(dev), &
init_net)) {
447 if ((*skb->
data & 0x0F) != 0) {