root/include/linux/ip.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. ip_hdr
  2. inner_ip_hdr
  3. ipip_hdr
  4. ip_transport_len

   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  *              Definitions for the IP protocol.
   8  *
   9  * Version:     @(#)ip.h        1.0.2   04/28/93
  10  *
  11  * Authors:     Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
  12  */
  13 #ifndef _LINUX_IP_H
  14 #define _LINUX_IP_H
  15 
  16 #include <linux/skbuff.h>
  17 #include <uapi/linux/ip.h>
  18 
  19 static inline struct iphdr *ip_hdr(const struct sk_buff *skb)
  20 {
  21         return (struct iphdr *)skb_network_header(skb);
  22 }
  23 
  24 static inline struct iphdr *inner_ip_hdr(const struct sk_buff *skb)
  25 {
  26         return (struct iphdr *)skb_inner_network_header(skb);
  27 }
  28 
  29 static inline struct iphdr *ipip_hdr(const struct sk_buff *skb)
  30 {
  31         return (struct iphdr *)skb_transport_header(skb);
  32 }
  33 
  34 static inline unsigned int ip_transport_len(const struct sk_buff *skb)
  35 {
  36         return ntohs(ip_hdr(skb)->tot_len) - skb_network_header_len(skb);
  37 }
  38 #endif  /* _LINUX_IP_H */

/* [<][>][^][v][top][bottom][index][help] */