eth.c (f576e24ffaf2c6b01af389e3bad3342681a8b84f) | eth.c (4c13eb6657fe9ef7b4dc8f1a405c902e9e5234e0) |
---|---|
1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * Ethernet-type device handling. 7 * 8 * Version: @(#)eth.c 1.0.7 05/25/93 --- 142 unchanged lines hidden (view full) --- 151 * assume 802.3 if the type field is short enough to be a length. 152 * This is normal practice and works for any 'now in use' protocol. 153 */ 154__be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev) 155{ 156 struct ethhdr *eth; 157 unsigned char *rawp; 158 | 1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * Ethernet-type device handling. 7 * 8 * Version: @(#)eth.c 1.0.7 05/25/93 --- 142 unchanged lines hidden (view full) --- 151 * assume 802.3 if the type field is short enough to be a length. 152 * This is normal practice and works for any 'now in use' protocol. 153 */ 154__be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev) 155{ 156 struct ethhdr *eth; 157 unsigned char *rawp; 158 |
159 skb->dev = dev; |
|
159 skb->mac.raw = skb->data; 160 skb_pull(skb, ETH_HLEN); 161 eth = eth_hdr(skb); 162 163 if (is_multicast_ether_addr(eth->h_dest)) { 164 if (!compare_ether_addr(eth->h_dest, dev->broadcast)) 165 skb->pkt_type = PACKET_BROADCAST; 166 else --- 168 unchanged lines hidden --- | 160 skb->mac.raw = skb->data; 161 skb_pull(skb, ETH_HLEN); 162 eth = eth_hdr(skb); 163 164 if (is_multicast_ether_addr(eth->h_dest)) { 165 if (!compare_ether_addr(eth->h_dest, dev->broadcast)) 166 skb->pkt_type = PACKET_BROADCAST; 167 else --- 168 unchanged lines hidden --- |