1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2#ifndef _NF_CONNTRACK_TUPLE_COMMON_H 3#define _NF_CONNTRACK_TUPLE_COMMON_H 4 5#include <linux/types.h> 6#ifndef __KERNEL__ 7#include <linux/netfilter.h> 8#endif 9#include <linux/netfilter/nf_conntrack_common.h> /* IP_CT_IS_REPLY */ 10 11enum ip_conntrack_dir { 12 IP_CT_DIR_ORIGINAL, 13 IP_CT_DIR_REPLY, 14 IP_CT_DIR_MAX 15}; 16 17/* The protocol-specific manipulable parts of the tuple: always in 18 * network order 19 */ 20union nf_conntrack_man_proto { 21 /* Add other protocols here. */ 22 __be16 all; 23 24 struct { 25 __be16 port; 26 } tcp; 27 struct { 28 __be16 port; 29 } udp; 30 struct { 31 __be16 id; 32 } icmp; 33 struct { 34 __be16 port; 35 } dccp; 36 struct { 37 __be16 port; 38 } sctp; 39 struct { 40 __be16 key; /* GRE key is 32bit, PPtP only uses 16bit */ 41 } gre; 42}; 43 44#define CTINFO2DIR(ctinfo) ((ctinfo) >= IP_CT_IS_REPLY ? IP_CT_DIR_REPLY : IP_CT_DIR_ORIGINAL) 45 46#endif /* _NF_CONNTRACK_TUPLE_COMMON_H */ 47