arp.c (29a26a56803855a79dbd028cd61abee56237d6e5) | arp.c (0c4b51f0054ce85c0ec578ab818f0631834573eb) |
---|---|
1/* linux/net/ipv4/arp.c 2 * 3 * Copyright (C) 1994 by Florian La Roche 4 * 5 * This module implements the Address Resolution Protocol ARP (RFC 826), 6 * which is used to convert IP addresses (or in the future maybe other 7 * high-level addresses) into a low-level hardware address (like an Ethernet 8 * address). --- 607 unchanged lines hidden (view full) --- 616 return skb; 617 618out: 619 kfree_skb(skb); 620 return NULL; 621} 622EXPORT_SYMBOL(arp_create); 623 | 1/* linux/net/ipv4/arp.c 2 * 3 * Copyright (C) 1994 by Florian La Roche 4 * 5 * This module implements the Address Resolution Protocol ARP (RFC 826), 6 * which is used to convert IP addresses (or in the future maybe other 7 * high-level addresses) into a low-level hardware address (like an Ethernet 8 * address). --- 607 unchanged lines hidden (view full) --- 616 return skb; 617 618out: 619 kfree_skb(skb); 620 return NULL; 621} 622EXPORT_SYMBOL(arp_create); 623 |
624static int arp_xmit_finish(struct sock *sk, struct sk_buff *skb) | 624static int arp_xmit_finish(struct net *net, struct sock *sk, struct sk_buff *skb) |
625{ 626 return dev_queue_xmit(skb); 627} 628 629/* 630 * Send an arp packet. 631 */ 632void arp_xmit(struct sk_buff *skb) --- 4 unchanged lines hidden (view full) --- 637 arp_xmit_finish); 638} 639EXPORT_SYMBOL(arp_xmit); 640 641/* 642 * Process an arp request. 643 */ 644 | 625{ 626 return dev_queue_xmit(skb); 627} 628 629/* 630 * Send an arp packet. 631 */ 632void arp_xmit(struct sk_buff *skb) --- 4 unchanged lines hidden (view full) --- 637 arp_xmit_finish); 638} 639EXPORT_SYMBOL(arp_xmit); 640 641/* 642 * Process an arp request. 643 */ 644 |
645static int arp_process(struct sock *sk, struct sk_buff *skb) | 645static int arp_process(struct net *net, struct sock *sk, struct sk_buff *skb) |
646{ 647 struct net_device *dev = skb->dev; 648 struct in_device *in_dev = __in_dev_get_rcu(dev); 649 struct arphdr *arp; 650 unsigned char *arp_ptr; 651 struct rtable *rt; 652 unsigned char *sha; 653 __be32 sip, tip; 654 u16 dev_type = dev->type; 655 int addr_type; 656 struct neighbour *n; | 646{ 647 struct net_device *dev = skb->dev; 648 struct in_device *in_dev = __in_dev_get_rcu(dev); 649 struct arphdr *arp; 650 unsigned char *arp_ptr; 651 struct rtable *rt; 652 unsigned char *sha; 653 __be32 sip, tip; 654 u16 dev_type = dev->type; 655 int addr_type; 656 struct neighbour *n; |
657 struct net *net = dev_net(dev); | |
658 bool is_garp = false; 659 660 /* arp_rcv below verifies the ARP header and verifies the device 661 * is ARP'able. 662 */ 663 664 if (!in_dev) 665 goto out; --- 194 unchanged lines hidden (view full) --- 860 861out: 862 consume_skb(skb); 863 return 0; 864} 865 866static void parp_redo(struct sk_buff *skb) 867{ | 657 bool is_garp = false; 658 659 /* arp_rcv below verifies the ARP header and verifies the device 660 * is ARP'able. 661 */ 662 663 if (!in_dev) 664 goto out; --- 194 unchanged lines hidden (view full) --- 859 860out: 861 consume_skb(skb); 862 return 0; 863} 864 865static void parp_redo(struct sk_buff *skb) 866{ |
868 arp_process(NULL, skb); | 867 arp_process(dev_net(skb->dev), NULL, skb); |
869} 870 871 872/* 873 * Receive an arp request from the device layer. 874 */ 875 876static int arp_rcv(struct sk_buff *skb, struct net_device *dev, --- 520 unchanged lines hidden --- | 868} 869 870 871/* 872 * Receive an arp request from the device layer. 873 */ 874 875static int arp_rcv(struct sk_buff *skb, struct net_device *dev, --- 520 unchanged lines hidden --- |