in.h

来自「eCos操作系统源码」· C头文件 代码 · 共 684 行 · 第 1/2 页

H
684
字号
struct sockaddr_in {	u_int8_t    sin_len;	sa_family_t sin_family;	in_port_t   sin_port;	struct	    in_addr sin_addr;	int8_t	    sin_zero[8];};#if 0	/*NRL IPv6*//* * IP Version 6 socket address. */#define SIN6_LEN 1struct sockaddr_in6 {	u_int8_t	sin6_len;	sa_family_t	sin6_family;	in_port_t	sin6_port;	u_int32_t	sin6_flowinfo;	struct in6_addr	sin6_addr;	u_int32_t	sin6_scope_id;};#endif#define INET_ADDRSTRLEN                 16/* * Structure used to describe IP options. * Used to store options internally, to pass them to a process, * or to restore options retrieved earlier. * The ip_dst is used for the first-hop gateway when using a source route * (this gets put into the header proper). */struct ip_opts {	struct in_addr	ip_dst;		/* first hop, 0 w/o src rt */#if defined(__cplusplus)	int8_t		Ip_opts[40];	/* cannot have same name as class */#else	int8_t		ip_opts[40];	/* actually variable in size */#endif};/* * Options for use with [gs]etsockopt at the IP level. * First word of comment is data type; bool is stored in int. */#define	IP_OPTIONS		1    /* buf/ip_opts; set/get IP options */#define	IP_HDRINCL		2    /* int; header is included with data */#define	IP_TOS			3    /* int; IP type of service and preced. */#define	IP_TTL			4    /* int; IP time to live */#define	IP_RECVOPTS		5    /* bool; receive all IP opts w/dgram */#define	IP_RECVRETOPTS		6    /* bool; receive IP opts for response */#define	IP_RECVDSTADDR		7    /* bool; receive IP dst addr w/dgram */#define	IP_RETOPTS		8    /* ip_opts; set/get IP options */#define	IP_MULTICAST_IF		9    /* in_addr; set/get IP multicast i/f  */#define	IP_MULTICAST_TTL	10   /* u_char; set/get IP multicast ttl */#define	IP_MULTICAST_LOOP	11   /* u_char; set/get IP multicast loopback */#define	IP_ADD_MEMBERSHIP	12   /* ip_mreq; add an IP group membership */#define	IP_DROP_MEMBERSHIP	13   /* ip_mreq; drop an IP group membership *//* 14-17 left empty for future compatibility with FreeBSD */#define IP_PORTRANGE		19   /* int; range to choose for unspec port */#define IP_AUTH_LEVEL		20   /* u_char; authentication used */#define IP_ESP_TRANS_LEVEL	21   /* u_char; transport encryption */#define IP_ESP_NETWORK_LEVEL	22   /* u_char; full-packet encryption */#if 0 /* NRL IPv6 */#define IPV6_MULTICAST_IF	23   /* u_int; set/get multicast interface */#define IPV6_MULTICAST_HOPS	24   /* int; set/get multicast hop limit */#define IPV6_MULTICAST_LOOP	25   /* u_int; set/get multicast loopback */#define IPV6_JOIN_GROUP		26   /* ipv6_mreq; join multicast group */#define IPV6_ADD_MEMBERSHIP	IPV6_JOIN_GROUP /* XXX - for compatibility */#define IPV6_LEAVE_GROUP	27   /* ipv6_mreq: leave multicast group */#define IPV6_DROP_MEMBERSHIP	IPV6_LEAVE_GROUP /* XXX - for compatibility */#define IPV6_ADDRFORM		28   /* int; get/set form of returned addrs */#define IPV6_UNICAST_HOPS	29   /* int; get/set unicast hop limit */#define IPV6_PKTINFO		30   /* int; receive in6_pktinfo as cmsg */#define IPV6_HOPLIMIT		31   /* int; receive int hoplimit as cmsg */#define IPV6_NEXTHOP		32   /* int; receive sockaddr_in6 as cmsg */#define IPV6_HOPOPTS		33   /* int; receive hop options as cmsg */#define IPV6_DSTOPTS		34   /* int; receive dst options as cmsg */#define IPV6_RTHDR		35   /* int; receive routing header as cmsg */#define IPV6_PKTOPTIONS		36   /* int; send/receive cmsgs for TCP */#define IPV6_CHECKSUM		37   /* int; offset to place send checksum */#define ICMPV6_FILTER		38   /* struct icmpv6_filter; get/set filter */#define ICMP6_FILTER		ICMP6_FILTER#endif#define IPSEC_OUTSA		39   /* set the outbound SA for a socket */#if 0 /*KAME IPSEC*/#define IP_IPSEC_POLICY		?? /* struct; get/set security policy */#endif/* * Security levels - IPsec, not IPSO */#define IPSEC_LEVEL_BYPASS      0x00    /* Bypass policy altogether */#define IPSEC_LEVEL_NONE        0x00    /* Send clear, accept any */#define IPSEC_LEVEL_AVAIL       0x01    /* Send secure if SA available */#define IPSEC_LEVEL_USE         0x02    /* Send secure, accept any */#define IPSEC_LEVEL_REQUIRE     0x03    /* Require secure inbound, also use */#define IPSEC_LEVEL_UNIQUE      0x04    /* Use outbound SA that is unique */#define IPSEC_LEVEL_DEFAULT     IPSEC_LEVEL_AVAIL#define IPSEC_AUTH_LEVEL_DEFAULT IPSEC_LEVEL_DEFAULT#define IPSEC_ESP_TRANS_LEVEL_DEFAULT IPSEC_LEVEL_DEFAULT#define IPSEC_ESP_NETWORK_LEVEL_DEFAULT IPSEC_LEVEL_DEFAULT#if 0 /* NRL IPv6 *//* * IPv6 Routing header types */#define IPV6_RTHDR_TYPE_0	0 /* IPv6 Routing header type 0 */   #define IPV6_RTHDR_LOOSE	0 /* this hop need not be a neighbor */#define IPV6_RTHDR_STRICT	1 /* this hop must be a neighbor */#endif/* * Defaults and limits for options */#define	IP_DEFAULT_MULTICAST_TTL  1	/* normally limit m'casts to 1 hop  */#define	IP_DEFAULT_MULTICAST_LOOP 1	/* normally hear sends if a member  */#define	IP_MAX_MEMBERSHIPS	20	/* per socket; must fit in one mbuf *//* * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. */struct ip_mreq {	struct	in_addr imr_multiaddr;	/* IP multicast address of group */	struct	in_addr imr_interface;	/* local IP address of interface */};#if 0 /* NRL IPv6 *//* * Argument structure for IPV6_ADD_MEMBERSHIP and IPV6_DROP_MEMBERSHIP. */struct ipv6_mreq {	struct	in6_addr	ipv6mr_multiaddr; /* IPv6 multicast addr */	unsigned int		ipv6mr_interface; /* Interface index */};/* * Argument structure for IPV6_PKTINFO control messages */struct in6_pktinfo {	struct in6_addr ipi6_addr;	unsigned int ipi6_ifindex;};#endif/* * Argument for IP_PORTRANGE: * - which range to search when port is unspecified at bind() or connect() */#define IP_PORTRANGE_DEFAULT	0	/* default range */#define IP_PORTRANGE_HIGH	1	/* "high" - request firewall bypass */#define IP_PORTRANGE_LOW	2	/* "low" - vouchsafe security *//* * Buffer lengths for strings containing printable IP addresses */#define INET_ADDRSTRLEN		16#if 0 /* NRL IPv6 */#define INET6_ADDRSTRLEN	46#endif/* * Definitions for inet sysctl operations. * * Third level is protocol number. * Fourth level is desired variable within that protocol. */#define	IPPROTO_MAXID	(IPPROTO_AH + 1)	/* don't list to IPPROTO_MAX */#define	CTL_IPPROTO_NAMES { \	{ "ip", CTLTYPE_NODE }, \	{ "icmp", CTLTYPE_NODE }, \	{ "igmp", CTLTYPE_NODE }, \	{ "ggp", CTLTYPE_NODE }, \	{ "ip4", CTLTYPE_NODE }, \	{ 0, 0 }, \	{ "tcp", CTLTYPE_NODE }, \	{ 0, 0 }, \	{ "egp", CTLTYPE_NODE }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ "pup", CTLTYPE_NODE }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ "udp", CTLTYPE_NODE }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ "esp", CTLTYPE_NODE }, \	{ "ah", CTLTYPE_NODE }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ 0, 0 }, \	{ "etherip", CTLTYPE_NODE }, \}/* * Names for IP sysctl objects */#define	IPCTL_FORWARDING	1	/* act as router */#define	IPCTL_SENDREDIRECTS	2	/* may send redirects when forwarding */#define	IPCTL_DEFTTL		3	/* default TTL */#ifdef notyet#define	IPCTL_DEFMTU		4	/* default MTU */#endif#define	IPCTL_SOURCEROUTE	5	/* may perform source routes */#define	IPCTL_DIRECTEDBCAST	6	/* default broadcast behavior */#define IPCTL_IPPORT_FIRSTAUTO	7#define IPCTL_IPPORT_LASTAUTO	8#define IPCTL_IPPORT_HIFIRSTAUTO 9#define IPCTL_IPPORT_HILASTAUTO	10#define	IPCTL_IPPORT_MAXQUEUE	11#define	IPCTL_ENCDEBUG		12#define IPCTL_GIF_TTL		13	/* default TTL for gif encap packet */#define	IPCTL_MAXID		14#define	IPCTL_NAMES { \	{ 0, 0 }, \	{ "forwarding", CTLTYPE_INT }, \	{ "redirect", CTLTYPE_INT }, \	{ "ttl", CTLTYPE_INT }, \	/* { "mtu", CTLTYPE_INT }, */ { 0, 0 }, \	{ "sourceroute", CTLTYPE_INT }, \	{ "directed-broadcast", CTLTYPE_INT }, \	{ "portfirst", CTLTYPE_INT }, \	{ "portlast", CTLTYPE_INT }, \	{ "porthifirst", CTLTYPE_INT }, \	{ "porthilast", CTLTYPE_INT }, \	{ "maxqueue", CTLTYPE_INT }, \	{ "encdebug", CTLTYPE_INT }, \	{ "gifttl", CTLTYPE_INT }, \}/* INET6 stuff */#include <netinet6/in6.h>#ifndef _KERNEL#include <sys/cdefs.h>__BEGIN_DECLSint	   bindresvport __P((int, struct sockaddr_in *));int	   bindresvport_af __P((int, struct sockaddr *, int af));__END_DECLS#elseint	   in_broadcast __P((struct in_addr, struct ifnet *));int	   in_canforward __P((struct in_addr));int	   in_cksum __P((struct mbuf *, int));int	   in_localaddr __P((struct in_addr));void	   in_socktrim __P((struct sockaddr_in *));char	  *inet_ntoa __P((struct in_addr));char 	  *inet_ntoa_r __P((struct in_addr, char *));#define	satosin(sa)	((struct sockaddr_in *)(sa))#define	sintosa(sin)	((struct sockaddr *)(sin))#define	ifatoia(ifa)	((struct in_ifaddr *)(ifa))#endif#endif /* !_NETINET_IN_H_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?