History

netfilter: nf_tables: add tunnel support

This patch implements the tunnel object type that can be used to configure tunnels via metadata template through the existing lightweight API from the ingress path.

Pablo Neira Ayuso committed 8 years ago

Commit af308b91 parent 033eab55 files · +534 −1Browse files

Showing the changes to include/uapi/linux (1 of 5 files). Show all

Unified · Split

include/uapi/linux/netfilter/nf_tables.h+68−1
@@ -1416,7 +1416,8 @@ enum nft_ct_helper_attributes { · 1415 unmodified lines
14161416 #define NFT_OBJECT_CT_HELPER 3
14171417 #define NFT_OBJECT_LIMIT 4
14181418 #define NFT_OBJECT_CONNLIMIT 5
1419−#define __NFT_OBJECT_MAX 6
1419+#define NFT_OBJECT_TUNNEL 6
1420+#define __NFT_OBJECT_MAX 7
14201421 #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
14211422
14221423 /**
@@ -1580,4 +1581,70 @@ enum nft_ng_types { · 157 unmodified lines
15801581 };
15811582 #define NFT_NG_MAX (__NFT_NG_MAX - 1)
15821583
1584+enum nft_tunnel_key_ip_attributes {
1585+ NFTA_TUNNEL_KEY_IP_UNSPEC,
1586+ NFTA_TUNNEL_KEY_IP_SRC,
1587+ NFTA_TUNNEL_KEY_IP_DST,
1588+ __NFTA_TUNNEL_KEY_IP_MAX
1589+};
1590+#define NFTA_TUNNEL_KEY_IP_MAX (__NFTA_TUNNEL_KEY_IP_MAX - 1)
1591+
1592+enum nft_tunnel_ip6_attributes {
1593+ NFTA_TUNNEL_KEY_IP6_UNSPEC,
1594+ NFTA_TUNNEL_KEY_IP6_SRC,
1595+ NFTA_TUNNEL_KEY_IP6_DST,
1596+ NFTA_TUNNEL_KEY_IP6_FLOWLABEL,
1597+ __NFTA_TUNNEL_KEY_IP6_MAX
1598+};
1599+#define NFTA_TUNNEL_KEY_IP6_MAX (__NFTA_TUNNEL_KEY_IP6_MAX - 1)
1600+
1601+enum nft_tunnel_opts_attributes {
1602+ NFTA_TUNNEL_KEY_OPTS_UNSPEC,
1603+ NFTA_TUNNEL_KEY_OPTS_VXLAN,
1604+ NFTA_TUNNEL_KEY_OPTS_ERSPAN,
1605+ __NFTA_TUNNEL_KEY_OPTS_MAX
1606+};
1607+#define NFTA_TUNNEL_KEY_OPTS_MAX (__NFTA_TUNNEL_KEY_OPTS_MAX - 1)
1608+
1609+enum nft_tunnel_opts_vxlan_attributes {
1610+ NFTA_TUNNEL_KEY_VXLAN_UNSPEC,
1611+ NFTA_TUNNEL_KEY_VXLAN_GBP,
1612+ __NFTA_TUNNEL_KEY_VXLAN_MAX
1613+};
1614+#define NFTA_TUNNEL_KEY_VXLAN_MAX (__NFTA_TUNNEL_KEY_VXLAN_MAX - 1)
1615+
1616+enum nft_tunnel_opts_erspan_attributes {
1617+ NFTA_TUNNEL_KEY_ERSPAN_UNSPEC,
1618+ NFTA_TUNNEL_KEY_ERSPAN_VERSION,
1619+ NFTA_TUNNEL_KEY_ERSPAN_V1_INDEX,
1620+ NFTA_TUNNEL_KEY_ERSPAN_V2_HWID,
1621+ NFTA_TUNNEL_KEY_ERSPAN_V2_DIR,
1622+ __NFTA_TUNNEL_KEY_ERSPAN_MAX
1623+};
1624+#define NFTA_TUNNEL_KEY_ERSPAN_MAX (__NFTA_TUNNEL_KEY_ERSPAN_MAX - 1)
1625+
1626+enum nft_tunnel_flags {
1627+ NFT_TUNNEL_F_ZERO_CSUM_TX = (1 << 0),
1628+ NFT_TUNNEL_F_DONT_FRAGMENT = (1 << 1),
1629+ NFT_TUNNEL_F_SEQ_NUMBER = (1 << 2),
1630+};
1631+#define NFT_TUNNEL_F_MASK (NFT_TUNNEL_F_ZERO_CSUM_TX | \
1632+ NFT_TUNNEL_F_DONT_FRAGMENT | \
1633+ NFT_TUNNEL_F_SEQ_NUMBER)
1634+
1635+enum nft_tunnel_key_attributes {
1636+ NFTA_TUNNEL_KEY_UNSPEC,
1637+ NFTA_TUNNEL_KEY_ID,
1638+ NFTA_TUNNEL_KEY_IP,
1639+ NFTA_TUNNEL_KEY_IP6,
1640+ NFTA_TUNNEL_KEY_FLAGS,
1641+ NFTA_TUNNEL_KEY_TOS,
1642+ NFTA_TUNNEL_KEY_TTL,
1643+ NFTA_TUNNEL_KEY_SPORT,
1644+ NFTA_TUNNEL_KEY_DPORT,
1645+ NFTA_TUNNEL_KEY_OPTS,
1646+ __NFTA_TUNNEL_KEY_MAX
1647+};
1648+#define NFTA_TUNNEL_KEY_MAX (__NFTA_TUNNEL_KEY_MAX - 1)
1649+
15831650 #endif /* _LINUX_NF_TABLES_H */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t