FreeBSD kernel IPv4 code
ip.h File Reference
#include <sys/cdefs.h>
Include dependency graph for ip.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ip
 
struct  ip_timestamp
 
union  ip_timestamp::ipt_timestamp
 
struct  ip_timestamp::ipt_timestamp::ipt_ta
 
struct  ippseudo
 

Macros

#define IPVERSION   4
 
#define IP_RF   0x8000 /* reserved fragment flag */
 
#define IP_DF   0x4000 /* dont fragment flag */
 
#define IP_MF   0x2000 /* more fragments flag */
 
#define IP_OFFMASK   0x1fff /* mask for fragmenting bits */
 
#define IP_MAXPACKET   65535 /* maximum packet size */
 
#define IPTOS_LOWDELAY   0x10
 
#define IPTOS_THROUGHPUT   0x08
 
#define IPTOS_RELIABILITY   0x04
 
#define IPTOS_MINCOST   IPTOS_DSCP_CS0
 
#define IPTOS_PREC_NETCONTROL   IPTOS_DSCP_CS7
 
#define IPTOS_PREC_INTERNETCONTROL   IPTOS_DSCP_CS6
 
#define IPTOS_PREC_CRITIC_ECP   IPTOS_DSCP_CS5
 
#define IPTOS_PREC_FLASHOVERRIDE   IPTOS_DSCP_CS4
 
#define IPTOS_PREC_FLASH   IPTOS_DSCP_CS3
 
#define IPTOS_PREC_IMMEDIATE   IPTOS_DSCP_CS2
 
#define IPTOS_PREC_PRIORITY   IPTOS_DSCP_CS1
 
#define IPTOS_PREC_ROUTINE   IPTOS_DSCP_CS0
 
#define IPTOS_DSCP_OFFSET   2
 
#define IPTOS_DSCP_CS0   0x00
 
#define IPTOS_DSCP_CS1   0x20
 
#define IPTOS_DSCP_AF11   0x28
 
#define IPTOS_DSCP_AF12   0x30
 
#define IPTOS_DSCP_AF13   0x38
 
#define IPTOS_DSCP_CS2   0x40
 
#define IPTOS_DSCP_AF21   0x48
 
#define IPTOS_DSCP_AF22   0x50
 
#define IPTOS_DSCP_AF23   0x58
 
#define IPTOS_DSCP_CS3   0x60
 
#define IPTOS_DSCP_AF31   0x68
 
#define IPTOS_DSCP_AF32   0x70
 
#define IPTOS_DSCP_AF33   0x78
 
#define IPTOS_DSCP_CS4   0x80
 
#define IPTOS_DSCP_AF41   0x88
 
#define IPTOS_DSCP_AF42   0x90
 
#define IPTOS_DSCP_AF43   0x98
 
#define IPTOS_DSCP_CS5   0xa0
 
#define IPTOS_DSCP_VA   0xb0
 
#define IPTOS_DSCP_EF   0xb8
 
#define IPTOS_DSCP_CS6   0xc0
 
#define IPTOS_DSCP_CS7   0xe0
 
#define IPTOS_ECN_NOTECT   0x00 /* not-ECT */
 
#define IPTOS_ECN_ECT1   0x01 /* ECN-capable transport (1) */
 
#define IPTOS_ECN_ECT0   0x02 /* ECN-capable transport (0) */
 
#define IPTOS_ECN_CE   0x03 /* congestion experienced */
 
#define IPTOS_ECN_MASK   0x03 /* ECN field mask */
 
#define IPOPT_COPIED(o)   ((o)&0x80)
 
#define IPOPT_CLASS(o)   ((o)&0x60)
 
#define IPOPT_NUMBER(o)   ((o)&0x1f)
 
#define IPOPT_CONTROL   0x00
 
#define IPOPT_RESERVED1   0x20
 
#define IPOPT_DEBMEAS   0x40
 
#define IPOPT_RESERVED2   0x60
 
#define IPOPT_EOL   0 /* end of option list */
 
#define IPOPT_NOP   1 /* no operation */
 
#define IPOPT_RR   7 /* record packet route */
 
#define IPOPT_TS   68 /* timestamp */
 
#define IPOPT_SECURITY   130 /* provide s,c,h,tcc */
 
#define IPOPT_LSRR   131 /* loose source route */
 
#define IPOPT_ESO   133 /* extended security */
 
#define IPOPT_CIPSO   134 /* commercial security */
 
#define IPOPT_SATID   136 /* satnet id */
 
#define IPOPT_SSRR   137 /* strict source route */
 
#define IPOPT_RA   148 /* router alert */
 
#define IPOPT_OPTVAL   0 /* option ID */
 
#define IPOPT_OLEN   1 /* option length */
 
#define IPOPT_OFFSET   2 /* offset within option */
 
#define IPOPT_MINOFF   4 /* min value of above */
 
#define IPOPT_TS_TSONLY   0 /* timestamps only */
 
#define IPOPT_TS_TSANDADDR   1 /* timestamps and addresses */
 
#define IPOPT_TS_PRESPEC   3 /* specified modules only */
 
#define IPOPT_SECUR_UNCLASS   0x0000
 
#define IPOPT_SECUR_CONFID   0xf135
 
#define IPOPT_SECUR_EFTO   0x789a
 
#define IPOPT_SECUR_MMMM   0xbc4d
 
#define IPOPT_SECUR_RESTR   0xaf13
 
#define IPOPT_SECUR_SECRET   0xd788
 
#define IPOPT_SECUR_TOPSECRET   0x6bc5
 
#define MAXTTL   255 /* maximum time to live (seconds) */
 
#define IPDEFTTL   64 /* default ttl, from RFC 1340 */
 
#define IPFRAGTTL   60 /* time to live for frags, slowhz */
 
#define IPTTLDEC   1 /* subtracted when forwarding */
 
#define IP_MSS   576 /* default maximum segment size */
 

Functions

struct ip __aligned (2)
 

Variables

u_char ip_hl
 
u_char ip_v
 
u_char ip_tos
 
u_short ip_len
 
u_short ip_id
 
u_short ip_off
 
u_char ip_ttl
 
u_char ip_p
 
u_short ip_sum
 
struct in_addr ip_src ip_dst
 
struct ip_timestamp __aligned
 

Macro Definition Documentation

◆ IP_DF

#define IP_DF   0x4000 /* dont fragment flag */

Definition at line 13 of file ip.h.

◆ IP_MAXPACKET

#define IP_MAXPACKET   65535 /* maximum packet size */

Definition at line 74 of file ip.h.

◆ IP_MF

#define IP_MF   0x2000 /* more fragments flag */

Definition at line 14 of file ip.h.

◆ IP_MSS

#define IP_MSS   576 /* default maximum segment size */

Definition at line 215 of file ip.h.

◆ IP_OFFMASK

#define IP_OFFMASK   0x1fff /* mask for fragmenting bits */

Definition at line 15 of file ip.h.

◆ IP_RF

#define IP_RF   0x8000 /* reserved fragment flag */

Definition at line 12 of file ip.h.

◆ IPDEFTTL

#define IPDEFTTL   64 /* default ttl, from RFC 1340 */

Definition at line 212 of file ip.h.

◆ IPFRAGTTL

#define IPFRAGTTL   60 /* time to live for frags, slowhz */

Definition at line 213 of file ip.h.

◆ IPOPT_CIPSO

#define IPOPT_CIPSO   134 /* commercial security */

Definition at line 157 of file ip.h.

◆ IPOPT_CLASS

#define IPOPT_CLASS (   o)    ((o)&0x60)

Definition at line 141 of file ip.h.

◆ IPOPT_CONTROL

#define IPOPT_CONTROL   0x00

Definition at line 144 of file ip.h.

◆ IPOPT_COPIED

#define IPOPT_COPIED (   o)    ((o)&0x80)

Definition at line 140 of file ip.h.

◆ IPOPT_DEBMEAS

#define IPOPT_DEBMEAS   0x40

Definition at line 146 of file ip.h.

◆ IPOPT_EOL

#define IPOPT_EOL   0 /* end of option list */

Definition at line 149 of file ip.h.

◆ IPOPT_ESO

#define IPOPT_ESO   133 /* extended security */

Definition at line 156 of file ip.h.

◆ IPOPT_LSRR

#define IPOPT_LSRR   131 /* loose source route */

Definition at line 155 of file ip.h.

◆ IPOPT_MINOFF

#define IPOPT_MINOFF   4 /* min value of above */

Definition at line 168 of file ip.h.

◆ IPOPT_NOP

#define IPOPT_NOP   1 /* no operation */

Definition at line 150 of file ip.h.

◆ IPOPT_NUMBER

#define IPOPT_NUMBER (   o)    ((o)&0x1f)

Definition at line 142 of file ip.h.

◆ IPOPT_OFFSET

#define IPOPT_OFFSET   2 /* offset within option */

Definition at line 167 of file ip.h.

◆ IPOPT_OLEN

#define IPOPT_OLEN   1 /* option length */

Definition at line 166 of file ip.h.

◆ IPOPT_OPTVAL

#define IPOPT_OPTVAL   0 /* option ID */

Definition at line 165 of file ip.h.

◆ IPOPT_RA

#define IPOPT_RA   148 /* router alert */

Definition at line 160 of file ip.h.

◆ IPOPT_RESERVED1

#define IPOPT_RESERVED1   0x20

Definition at line 145 of file ip.h.

◆ IPOPT_RESERVED2

#define IPOPT_RESERVED2   0x60

Definition at line 147 of file ip.h.

◆ IPOPT_RR

#define IPOPT_RR   7 /* record packet route */

Definition at line 152 of file ip.h.

◆ IPOPT_SATID

#define IPOPT_SATID   136 /* satnet id */

Definition at line 158 of file ip.h.

◆ IPOPT_SECUR_CONFID

#define IPOPT_SECUR_CONFID   0xf135

Definition at line 201 of file ip.h.

◆ IPOPT_SECUR_EFTO

#define IPOPT_SECUR_EFTO   0x789a

Definition at line 202 of file ip.h.

◆ IPOPT_SECUR_MMMM

#define IPOPT_SECUR_MMMM   0xbc4d

Definition at line 203 of file ip.h.

◆ IPOPT_SECUR_RESTR

#define IPOPT_SECUR_RESTR   0xaf13

Definition at line 204 of file ip.h.

◆ IPOPT_SECUR_SECRET

#define IPOPT_SECUR_SECRET   0xd788

Definition at line 205 of file ip.h.

◆ IPOPT_SECUR_TOPSECRET

#define IPOPT_SECUR_TOPSECRET   0x6bc5

Definition at line 206 of file ip.h.

◆ IPOPT_SECUR_UNCLASS

#define IPOPT_SECUR_UNCLASS   0x0000

Definition at line 200 of file ip.h.

◆ IPOPT_SECURITY

#define IPOPT_SECURITY   130 /* provide s,c,h,tcc */

Definition at line 154 of file ip.h.

◆ IPOPT_SSRR

#define IPOPT_SSRR   137 /* strict source route */

Definition at line 159 of file ip.h.

◆ IPOPT_TS

#define IPOPT_TS   68 /* timestamp */

Definition at line 153 of file ip.h.

◆ IPOPT_TS_PRESPEC

#define IPOPT_TS_PRESPEC   3 /* specified modules only */

Definition at line 197 of file ip.h.

◆ IPOPT_TS_TSANDADDR

#define IPOPT_TS_TSANDADDR   1 /* timestamps and addresses */

Definition at line 196 of file ip.h.

◆ IPOPT_TS_TSONLY

#define IPOPT_TS_TSONLY   0 /* timestamps only */

Definition at line 195 of file ip.h.

◆ IPTOS_DSCP_AF11

#define IPTOS_DSCP_AF11   0x28

Definition at line 106 of file ip.h.

◆ IPTOS_DSCP_AF12

#define IPTOS_DSCP_AF12   0x30

Definition at line 107 of file ip.h.

◆ IPTOS_DSCP_AF13

#define IPTOS_DSCP_AF13   0x38

Definition at line 108 of file ip.h.

◆ IPTOS_DSCP_AF21

#define IPTOS_DSCP_AF21   0x48

Definition at line 110 of file ip.h.

◆ IPTOS_DSCP_AF22

#define IPTOS_DSCP_AF22   0x50

Definition at line 111 of file ip.h.

◆ IPTOS_DSCP_AF23

#define IPTOS_DSCP_AF23   0x58

Definition at line 112 of file ip.h.

◆ IPTOS_DSCP_AF31

#define IPTOS_DSCP_AF31   0x68

Definition at line 114 of file ip.h.

◆ IPTOS_DSCP_AF32

#define IPTOS_DSCP_AF32   0x70

Definition at line 115 of file ip.h.

◆ IPTOS_DSCP_AF33

#define IPTOS_DSCP_AF33   0x78

Definition at line 116 of file ip.h.

◆ IPTOS_DSCP_AF41

#define IPTOS_DSCP_AF41   0x88

Definition at line 118 of file ip.h.

◆ IPTOS_DSCP_AF42

#define IPTOS_DSCP_AF42   0x90

Definition at line 119 of file ip.h.

◆ IPTOS_DSCP_AF43

#define IPTOS_DSCP_AF43   0x98

Definition at line 120 of file ip.h.

◆ IPTOS_DSCP_CS0

#define IPTOS_DSCP_CS0   0x00

Definition at line 104 of file ip.h.

◆ IPTOS_DSCP_CS1

#define IPTOS_DSCP_CS1   0x20

Definition at line 105 of file ip.h.

◆ IPTOS_DSCP_CS2

#define IPTOS_DSCP_CS2   0x40

Definition at line 109 of file ip.h.

◆ IPTOS_DSCP_CS3

#define IPTOS_DSCP_CS3   0x60

Definition at line 113 of file ip.h.

◆ IPTOS_DSCP_CS4

#define IPTOS_DSCP_CS4   0x80

Definition at line 117 of file ip.h.

◆ IPTOS_DSCP_CS5

#define IPTOS_DSCP_CS5   0xa0

Definition at line 121 of file ip.h.

◆ IPTOS_DSCP_CS6

#define IPTOS_DSCP_CS6   0xc0

Definition at line 124 of file ip.h.

◆ IPTOS_DSCP_CS7

#define IPTOS_DSCP_CS7   0xe0

Definition at line 125 of file ip.h.

◆ IPTOS_DSCP_EF

#define IPTOS_DSCP_EF   0xb8

Definition at line 123 of file ip.h.

◆ IPTOS_DSCP_OFFSET

#define IPTOS_DSCP_OFFSET   2

Definition at line 99 of file ip.h.

◆ IPTOS_DSCP_VA

#define IPTOS_DSCP_VA   0xb0

Definition at line 122 of file ip.h.

◆ IPTOS_ECN_CE

#define IPTOS_ECN_CE   0x03 /* congestion experienced */

Definition at line 134 of file ip.h.

◆ IPTOS_ECN_ECT0

#define IPTOS_ECN_ECT0   0x02 /* ECN-capable transport (0) */

Definition at line 133 of file ip.h.

◆ IPTOS_ECN_ECT1

#define IPTOS_ECN_ECT1   0x01 /* ECN-capable transport (1) */

Definition at line 132 of file ip.h.

◆ IPTOS_ECN_MASK

#define IPTOS_ECN_MASK   0x03 /* ECN field mask */

Definition at line 135 of file ip.h.

◆ IPTOS_ECN_NOTECT

#define IPTOS_ECN_NOTECT   0x00 /* not-ECT */

Definition at line 131 of file ip.h.

◆ IPTOS_LOWDELAY

#define IPTOS_LOWDELAY   0x10

Definition at line 79 of file ip.h.

◆ IPTOS_MINCOST

#define IPTOS_MINCOST   IPTOS_DSCP_CS0

Definition at line 82 of file ip.h.

◆ IPTOS_PREC_CRITIC_ECP

#define IPTOS_PREC_CRITIC_ECP   IPTOS_DSCP_CS5

Definition at line 89 of file ip.h.

◆ IPTOS_PREC_FLASH

#define IPTOS_PREC_FLASH   IPTOS_DSCP_CS3

Definition at line 91 of file ip.h.

◆ IPTOS_PREC_FLASHOVERRIDE

#define IPTOS_PREC_FLASHOVERRIDE   IPTOS_DSCP_CS4

Definition at line 90 of file ip.h.

◆ IPTOS_PREC_IMMEDIATE

#define IPTOS_PREC_IMMEDIATE   IPTOS_DSCP_CS2

Definition at line 92 of file ip.h.

◆ IPTOS_PREC_INTERNETCONTROL

#define IPTOS_PREC_INTERNETCONTROL   IPTOS_DSCP_CS6

Definition at line 88 of file ip.h.

◆ IPTOS_PREC_NETCONTROL

#define IPTOS_PREC_NETCONTROL   IPTOS_DSCP_CS7

Definition at line 87 of file ip.h.

◆ IPTOS_PREC_PRIORITY

#define IPTOS_PREC_PRIORITY   IPTOS_DSCP_CS1

Definition at line 93 of file ip.h.

◆ IPTOS_PREC_ROUTINE

#define IPTOS_PREC_ROUTINE   IPTOS_DSCP_CS0

Definition at line 94 of file ip.h.

◆ IPTOS_RELIABILITY

#define IPTOS_RELIABILITY   0x04

Definition at line 81 of file ip.h.

◆ IPTOS_THROUGHPUT

#define IPTOS_THROUGHPUT   0x08

Definition at line 80 of file ip.h.

◆ IPTTLDEC

#define IPTTLDEC   1 /* subtracted when forwarding */

Definition at line 214 of file ip.h.

◆ IPVERSION

#define IPVERSION   4

Definition at line 46 of file ip.h.

◆ MAXTTL

#define MAXTTL   255 /* maximum time to live (seconds) */

Definition at line 211 of file ip.h.

Function Documentation

◆ __aligned()

struct ip __aligned ( )

Variable Documentation

◆ __aligned

struct tcp_bbr __aligned

◆ ip_dst

struct in_addr ip_src ip_dst

Definition at line 19 of file ip.h.

Referenced by ProtoAliasOut().

◆ ip_hl

u_char ip_hl

Definition at line 1 of file ip.h.

Referenced by AddSeq(), and siftr_chkpkt().

◆ ip_id

u_short ip_id

◆ ip_len

u_short ip_len

◆ ip_off

u_short ip_off

Definition at line 11 of file ip.h.

Referenced by ip_fragment(), ip_output(), ip_reass(), and ip_tryforward().

◆ ip_p

u_char ip_p

Definition at line 17 of file ip.h.

Referenced by ProtoAliasIn(), ProtoAliasOut(), and ProxyCheck().

◆ ip_sum

u_short ip_sum

Definition at line 18 of file ip.h.

Referenced by FragmentIn(), FragmentOut(), ProtoAliasIn(), and ProtoAliasOut().

◆ ip_tos

u_char ip_tos

Definition at line 8 of file ip.h.

Referenced by in_gre_output(), pim_input(), and syncache_add().

◆ ip_ttl

u_char ip_ttl

Definition at line 16 of file ip.h.

Referenced by syncache_add().

◆ ip_v

u_char ip_v

Definition at line 2 of file ip.h.

Referenced by tcp_dropwithreset().