Blame include/headers.h

Packit c5a612
#ifndef NFTABLES_HEADERS_H
Packit c5a612
#define NFTABLES_HEADERS_H
Packit c5a612
Packit c5a612
#ifndef IPPROTO_UDPLITE
Packit c5a612
# define IPPROTO_UDPLITE	136
Packit c5a612
#endif
Packit c5a612
Packit c5a612
enum tcp_hdr_flags {
Packit c5a612
	TCP_FLAG_FIN	= 0x01,
Packit c5a612
	TCP_FLAG_SYN	= 0x02,
Packit c5a612
	TCP_FLAG_RST	= 0x04,
Packit c5a612
	TCP_FLAG_PSH	= 0x08,
Packit c5a612
	TCP_FLAG_ACK	= 0x10,
Packit c5a612
	TCP_FLAG_URG	= 0x20,
Packit c5a612
	TCP_FLAG_ECN	= 0x40,
Packit c5a612
	TCP_FLAG_CWR	= 0x80,
Packit c5a612
};
Packit c5a612
Packit c5a612
struct ip_auth_hdr {
Packit c5a612
	uint8_t 	nexthdr;
Packit c5a612
	uint8_t 	hdrlen;
Packit c5a612
	uint16_t	reserved;
Packit c5a612
	uint32_t	spi;
Packit c5a612
	uint32_t	seq_no;
Packit c5a612
};
Packit c5a612
Packit c5a612
struct ip_esp_hdr {
Packit c5a612
	uint32_t	spi;
Packit c5a612
	uint32_t	seq_no;
Packit c5a612
};
Packit c5a612
Packit c5a612
struct ip_comp_hdr {
Packit c5a612
	uint8_t		nexthdr;
Packit c5a612
	uint8_t		flags;
Packit c5a612
	uint16_t	cpi;
Packit c5a612
};
Packit c5a612
Packit c5a612
#ifndef IPPROTO_DCCP
Packit c5a612
# define IPPROTO_DCCP 33
Packit c5a612
#endif
Packit c5a612
Packit c5a612
enum dccp_pkt_type {
Packit c5a612
	DCCP_PKT_REQUEST = 0,
Packit c5a612
	DCCP_PKT_RESPONSE,
Packit c5a612
	DCCP_PKT_DATA,
Packit c5a612
	DCCP_PKT_ACK,
Packit c5a612
	DCCP_PKT_DATAACK,
Packit c5a612
	DCCP_PKT_CLOSEREQ,
Packit c5a612
	DCCP_PKT_CLOSE,
Packit c5a612
	DCCP_PKT_RESET,
Packit c5a612
	DCCP_PKT_SYNC,
Packit c5a612
	DCCP_PKT_SYNCACK,
Packit c5a612
	DCCP_PKT_INVALID,
Packit c5a612
};
Packit c5a612
Packit c5a612
struct dccp_hdr {
Packit c5a612
	uint16_t	dccph_sport,
Packit c5a612
			dccph_dport;
Packit c5a612
	uint8_t		dccph_doff;
Packit c5a612
	uint8_t		dccph_ccval:4,
Packit c5a612
			dccph_cscov:4;
Packit c5a612
	uint16_t	dccph_checksum;
Packit c5a612
	uint8_t		dccph_reserved:3,
Packit c5a612
			dccph_type:4,
Packit c5a612
			dccph_x:1;
Packit c5a612
	uint8_t		dccph_seq2;
Packit c5a612
	uint16_t	dccph_seq;
Packit c5a612
};
Packit c5a612
Packit c5a612
#ifndef IPPROTO_SCTP
Packit c5a612
# define IPPROTO_SCTP 132
Packit c5a612
#endif
Packit c5a612
Packit c5a612
struct sctphdr {
Packit c5a612
	uint16_t	source;
Packit c5a612
	uint16_t	dest;
Packit c5a612
	uint32_t	vtag;
Packit c5a612
	uint32_t	checksum;
Packit c5a612
};
Packit c5a612
Packit c5a612
struct arp_hdr {
Packit c5a612
	uint16_t	htype;
Packit c5a612
	uint16_t	ptype;
Packit c5a612
	uint8_t		hlen;
Packit c5a612
	uint8_t		plen;
Packit c5a612
	uint16_t	oper;
Packit c5a612
	uint8_t		sha[6];
Packit c5a612
	uint32_t	spa;
Packit c5a612
	uint8_t		tha[6];
Packit c5a612
	uint32_t	tpa;
Packit c5a612
} __attribute__((__packed__));
Packit c5a612
Packit c5a612
struct ipv6hdr {
Packit c5a612
	uint8_t		version:4,
Packit c5a612
			priority:4;
Packit c5a612
	uint8_t		flow_lbl[3];
Packit c5a612
Packit c5a612
	uint16_t	payload_len;
Packit c5a612
	uint8_t		nexthdr;
Packit c5a612
	uint8_t		hop_limit;
Packit c5a612
Packit c5a612
	struct in6_addr	saddr;
Packit c5a612
	struct in6_addr	daddr;
Packit c5a612
};
Packit c5a612
Packit c5a612
struct vlan_hdr {
Packit c5a612
	uint16_t	vlan_id:12,
Packit c5a612
			vlan_cfi:1,
Packit c5a612
			vlan_pcp:3;
Packit c5a612
	uint16_t	vlan_type;
Packit c5a612
};
Packit c5a612
Packit c5a612
#ifndef IPPROTO_MH
Packit c5a612
# define IPPROTO_MH 135
Packit c5a612
#endif
Packit c5a612
Packit c5a612
struct ip6_mh {
Packit c5a612
	uint8_t		ip6mh_proto;
Packit c5a612
	uint8_t		ip6mh_hdrlen;
Packit c5a612
	uint8_t		ip6mh_type;
Packit c5a612
	uint8_t		ip6mh_reserved;
Packit c5a612
	uint16_t	ip6mh_cksum;
Packit c5a612
	/* Followed by type specific messages */
Packit c5a612
	uint8_t		data[0];
Packit c5a612
};
Packit c5a612
Packit c5a612
/* Type 4 Routing header - well known as srh */
Packit c5a612
struct ip6_rt4 {
Packit c5a612
	uint8_t		ip6r4_nxt;		/* next header			*/
Packit c5a612
	uint8_t		ip6r4_len;		/* length in units of 8 octets	*/
Packit c5a612
	uint8_t		ip6r4_type;		/* always zero			*/
Packit c5a612
	uint8_t		ip6r4_segleft;		/* segments left		*/
Packit c5a612
	uint8_t		ip6r4_last_entry;	/* last entry			*/
Packit c5a612
	uint8_t		ip6r4_flags;		/* flags			*/
Packit c5a612
	uint16_t	ip6r4_tag;		/* tag				*/
Packit c5a612
	struct in6_addr	ip6r4_segments[0];	/* SID list			*/
Packit c5a612
};
Packit c5a612
Packit c5a612
/* RFC 3775 */
Packit c5a612
#define IP6_MH_TYPE_BRR		0	/* Binding Refresh Request	*/
Packit c5a612
#define IP6_MH_TYPE_HOTI	1	/* HOTI Message			*/
Packit c5a612
#define IP6_MH_TYPE_COTI	2	/* COTI Message			*/
Packit c5a612
#define IP6_MH_TYPE_HOT		3	/* HOT Message			*/
Packit c5a612
#define IP6_MH_TYPE_COT		4	/* COT Message			*/
Packit c5a612
#define IP6_MH_TYPE_BU		5	/* Binding Update		*/
Packit c5a612
#define IP6_MH_TYPE_BACK	6	/* Binding ACK			*/
Packit c5a612
#define IP6_MH_TYPE_BERROR	7	/* Binding Error		*/
Packit c5a612
/* RFC 4068 */
Packit c5a612
#define IP6_MH_TYPE_FBU		8	/* Fast Binding Update		*/
Packit c5a612
#define IP6_MH_TYPE_FBACK	9	/* Fast Binding ACK		*/
Packit c5a612
#define IP6_MH_TYPE_FNA		10	/* Fast Binding Advertisement	*/
Packit c5a612
/* RFC 5096 */
Packit c5a612
#define IP6_MH_TYPE_EMH		11	/* Experimental Mobility Header	*/
Packit c5a612
/* RFC 5142 */
Packit c5a612
#define IP6_MH_TYPE_HASM	12	/* Home Agent Switch Message	*/
Packit c5a612
Packit c5a612
#endif /* NFTABLES_HEADERS_H */