LCOV - code coverage report
Current view: top level - include/linux - if_arp.h (source / functions) Hit Total Coverage
Test: landlock.info Lines: 5 9 55.6 %
Date: 2021-04-22 12:43:58 Functions: 0 1 0.0 %

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0-or-later */
       2             : /*
       3             :  * INET         An implementation of the TCP/IP protocol suite for the LINUX
       4             :  *              operating system.  INET is implemented using the  BSD Socket
       5             :  *              interface as the means of communication with the user level.
       6             :  *
       7             :  *              Global definitions for the ARP (RFC 826) protocol.
       8             :  *
       9             :  * Version:     @(#)if_arp.h    1.0.1   04/16/93
      10             :  *
      11             :  * Authors:     Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988
      12             :  *              Portions taken from the KA9Q/NOS (v2.00m PA0GRI) source.
      13             :  *              Ross Biro
      14             :  *              Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
      15             :  *              Florian La Roche,
      16             :  *              Jonathan Layes <layes@loran.com>
      17             :  *              Arnaldo Carvalho de Melo <acme@conectiva.com.br> ARPHRD_HWX25
      18             :  */
      19             : #ifndef _LINUX_IF_ARP_H
      20             : #define _LINUX_IF_ARP_H
      21             : 
      22             : #include <linux/skbuff.h>
      23             : #include <uapi/linux/if_arp.h>
      24             : 
      25           8 : static inline struct arphdr *arp_hdr(const struct sk_buff *skb)
      26             : {
      27           8 :         return (struct arphdr *)skb_network_header(skb);
      28             : }
      29             : 
      30          12 : static inline unsigned int arp_hdr_len(const struct net_device *dev)
      31             : {
      32          12 :         switch (dev->type) {
      33             : #if IS_ENABLED(CONFIG_FIREWIRE_NET)
      34             :         case ARPHRD_IEEE1394:
      35             :                 /* ARP header, device address and 2 IP addresses */
      36             :                 return sizeof(struct arphdr) + dev->addr_len + sizeof(u32) * 2;
      37             : #endif
      38             :         default:
      39             :                 /* ARP header, plus 2 device addresses, plus 2 IP addresses. */
      40          12 :                 return sizeof(struct arphdr) + (dev->addr_len + sizeof(u32)) * 2;
      41             :         }
      42             : }
      43             : 
      44           0 : static inline bool dev_is_mac_header_xmit(const struct net_device *dev)
      45             : {
      46           0 :         switch (dev->type) {
      47             :         case ARPHRD_TUNNEL:
      48             :         case ARPHRD_TUNNEL6:
      49             :         case ARPHRD_SIT:
      50             :         case ARPHRD_IPGRE:
      51             :         case ARPHRD_VOID:
      52             :         case ARPHRD_NONE:
      53             :         case ARPHRD_RAWIP:
      54             :                 return false;
      55           0 :         default:
      56           0 :                 return true;
      57             :         }
      58             : }
      59             : 
      60             : #endif  /* _LINUX_IF_ARP_H */

Generated by: LCOV version 1.14