12 #include <linux/list.h>
13 #include <linux/netdevice.h>
14 #include <linux/slab.h>
25 dev->
stats.tx_packets++;
47 edsa_header[2] = 0x00;
48 edsa_header[3] = 0x00;
49 edsa_header[4] = 0x60 | p->
parent->index;
50 edsa_header[5] = p->
port << 3;
55 if (edsa_header[6] & 0x10) {
56 edsa_header[5] |= 0x01;
57 edsa_header[6] &= ~0x10;
72 edsa_header[2] = 0x00;
73 edsa_header[3] = 0x00;
74 edsa_header[4] = 0x40 | p->
parent->index;
75 edsa_header[5] = p->
port << 3;
76 edsa_header[6] = 0x00;
77 edsa_header[7] = 0x00;
114 edsa_header = skb->
data + 2;
119 if ((edsa_header[0] & 0xc0) != 0x00 && (edsa_header[0] & 0xc0) != 0xc0)
125 source_device = edsa_header[0] & 0x1f;
126 source_port = (edsa_header[1] >> 3) & 0x1f;
132 if (source_device >= dst->
pd->nr_chips)
134 ds = dst->
ds[source_device];
143 if (edsa_header[0] & 0x20) {
153 new_header[2] = edsa_header[2] & ~0x10;
154 new_header[3] = edsa_header[3];
160 if (edsa_header[1] & 0x01)
161 new_header[2] |= 0x10;
195 skb->
dev->stats.rx_packets++;
196 skb->
dev->stats.rx_bytes += skb->
len;