linux ip.h,include/uapi/linux/ip.h · liang/linux - Gitee.com

/*

* INETAn implementation of the TCP/IP protocol suite for the LINUX

*operating system. INET is implemented using the BSD Socket

*interface as the means of communication with the user level.

*

*Definitions for the IP protocol.

*

* Version:@(#)ip.h1.0.204/28/93

*

* Authors:Fred N. van Kempen,

*

*This program is free software; you can redistribute it and/or

*modify it under the terms of the GNU General Public License

*as published by the Free Software Foundation; either version

*2 of the License, or (at your option) any later version.

*/

#ifndef _UAPI_LINUX_IP_H

#define _UAPI_LINUX_IP_H

#include

#include

#define IPTOS_TOS_MASK0x1E

#define IPTOS_TOS(tos)((tos)&IPTOS_TOS_MASK)

#defineIPTOS_LOWDELAY0x10

#defineIPTOS_THROUGHPUT0x08

#defineIPTOS_RELIABILITY0x04

#defineIPTOS_MINCOST0x02

#define IPTOS_PREC_MASK0xE0

#define IPTOS_PREC(tos)((tos)&IPTOS_PREC_MASK)

#define IPTOS_PREC_NETCONTROL 0xe0

#define IPTOS_PREC_INTERNETCONTROL 0xc0

#define IPTOS_PREC_CRITIC_ECP 0xa0

#define IPTOS_PREC_FLASHOVERRIDE 0x80

#define IPTOS_PREC_FLASH 0x60

#define IPTOS_PREC_IMMEDIATE 0x40

#define IPTOS_PREC_PRIORITY 0x20

#define IPTOS_PREC_ROUTINE 0x00

/* IP options */

#define IPOPT_COPY0x80

#define IPOPT_CLASS_MASK0x60

#define IPOPT_NUMBER_MASK0x1f

#defineIPOPT_COPIED(o)((o)&IPOPT_COPY)

#defineIPOPT_CLASS(o)((o)&IPOPT_CLASS_MASK)

#defineIPOPT_NUMBER(o)((o)&IPOPT_NUMBER_MASK)

#defineIPOPT_CONTROL0x00

#defineIPOPT_RESERVED10x20

#defineIPOPT_MEASUREMENT0x40

#defineIPOPT_RESERVED20x60

#define IPOPT_END(0 |IPOPT_CONTROL)

#define IPOPT_NOOP(1 |IPOPT_CONTROL)

#define IPOPT_SEC(2 |IPOPT_CONTROL|IPOPT_COPY)

#define IPOPT_LSRR(3 |IPOPT_CONTROL|IPOPT_COPY)

#define IPOPT_TIMESTAMP(4 |IPOPT_MEASUREMENT)

#define IPOPT_CIPSO(6 |IPOPT_CONTROL|IPOPT_COPY)

#define IPOPT_RR(7 |IPOPT_CONTROL)

#define IPOPT_SID(8 |IPOPT_CONTROL|IPOPT_COPY)

#define IPOPT_SSRR(9 |IPOPT_CONTROL|IPOPT_COPY)

#define IPOPT_RA(20|IPOPT_CONTROL|IPOPT_COPY)

#define IPVERSION4

#define MAXTTL255

#define IPDEFTTL64

#define IPOPT_OPTVAL 0

#define IPOPT_OLEN 1

#define IPOPT_OFFSET 2

#define IPOPT_MINOFF 4

#define MAX_IPOPTLEN 40

#define IPOPT_NOP IPOPT_NOOP

#define IPOPT_EOL IPOPT_END

#define IPOPT_TS IPOPT_TIMESTAMP

#defineIPOPT_TS_TSONLY0/* timestamps only */

#defineIPOPT_TS_TSANDADDR1/* timestamps and addresses */

#defineIPOPT_TS_PRESPEC3/* specified modules only */

#define IPV4_BEET_PHMAXLEN 8

struct iphdr {

#if defined(__LITTLE_ENDIAN_BITFIELD)

__u8ihl:4,

version:4;

#elif defined (__BIG_ENDIAN_BITFIELD)

__u8version:4,

ihl:4;

#else

#error"Please fix "

#endif

__u8tos;

__be16tot_len;

__be16id;

__be16frag_off;

__u8ttl;

__u8protocol;

__sum16check;

__be32saddr;

__be32daddr;

/*The options start here. */

};

struct ip_auth_hdr {

__u8 nexthdr;

__u8 hdrlen;/* This one is measured in 32 bit units! */

__be16 reserved;

__be32 spi;

__be32 seq_no;/* Sequence number */

__u8 auth_data[0];/* Variable len but >=4. Mind the 64 bit alignment! */

};

struct ip_esp_hdr {

__be32 spi;

__be32 seq_no;/* Sequence number */

__u8 enc_data[0];/* Variable len but >=8. Mind the 64 bit alignment! */

};

struct ip_comp_hdr {

__u8 nexthdr;

__u8 flags;

__be16 cpi;

};

struct ip_beet_phdr {

__u8 nexthdr;

__u8 hdrlen;

__u8 padlen;

__u8 reserved;

};

/* index values for the variables in ipv4_devconf */

enum

{

IPV4_DEVCONF_FORWARDING=1,

IPV4_DEVCONF_MC_FORWARDING,

IPV4_DEVCONF_PROXY_ARP,

IPV4_DEVCONF_ACCEPT_REDIRECTS,

IPV4_DEVCONF_SECURE_REDIRECTS,

IPV4_DEVCONF_SEND_REDIRECTS,

IPV4_DEVCONF_SHARED_MEDIA,

IPV4_DEVCONF_RP_FILTER,

IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE,

IPV4_DEVCONF_BOOTP_RELAY,

IPV4_DEVCONF_LOG_MARTIANS,

IPV4_DEVCONF_TAG,

IPV4_DEVCONF_ARPFILTER,

IPV4_DEVCONF_MEDIUM_ID,

IPV4_DEVCONF_NOXFRM,

IPV4_DEVCONF_NOPOLICY,

IPV4_DEVCONF_FORCE_IGMP_VERSION,

IPV4_DEVCONF_ARP_ANNOUNCE,

IPV4_DEVCONF_ARP_IGNORE,

IPV4_DEVCONF_PROMOTE_SECONDARIES,

IPV4_DEVCONF_ARP_ACCEPT,

IPV4_DEVCONF_ARP_NOTIFY,

IPV4_DEVCONF_ACCEPT_LOCAL,

IPV4_DEVCONF_SRC_VMARK,

IPV4_DEVCONF_PROXY_ARP_PVLAN,

IPV4_DEVCONF_ROUTE_LOCALNET,

IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL,

IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL,

IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,

IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,

IPV4_DEVCONF_DROP_GRATUITOUS_ARP,

__IPV4_DEVCONF_MAX

};

#define IPV4_DEVCONF_MAX (__IPV4_DEVCONF_MAX - 1)

#endif /* _UAPI_LINUX_IP_H */

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值