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
1416#define NFT_OBJECT_CT_HELPER 31416#define NFT_OBJECT_CT_HELPER 3
1417#define NFT_OBJECT_LIMIT 41417#define NFT_OBJECT_LIMIT 4
1418#define NFT_OBJECT_CONNLIMIT 51418#define NFT_OBJECT_CONNLIMIT 5
1419#define __NFT_OBJECT_MAX 61419#define NFT_OBJECT_TUNNEL 6
1420#define __NFT_OBJECT_MAX 7
1420#define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)1421#define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
1421 1422
1422/**1423/**
@@ -1580,4 +1581,70 @@ enum nft_ng_types { · 157 unmodified lines
1580};1581};
1581#define NFT_NG_MAX (__NFT_NG_MAX - 1)1582#define NFT_NG_MAX (__NFT_NG_MAX - 1)
1582 1583
1584enum 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
1592enum 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
1601enum 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
1609enum 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
1616enum 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
1626enum 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
1635enum 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
1583#endif /* _LINUX_NF_TABLES_H */1650#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