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.
Showing the changes to include/uapi/linux (1 of 5 files). Show all
Unified · Split
| @@ -1416,7 +1416,8 @@ enum nft_ct_helper_attributes { · 1415 unmodified lines | ||
| 1416 | 1416 | #define NFT_OBJECT_CT_HELPER 3 |
| 1417 | 1417 | #define NFT_OBJECT_LIMIT 4 |
| 1418 | 1418 | #define NFT_OBJECT_CONNLIMIT 5 |
| 1419 | −#define __NFT_OBJECT_MAX 6 | |
| 1419 | +#define NFT_OBJECT_TUNNEL 6 | |
| 1420 | +#define __NFT_OBJECT_MAX 7 | |
| 1420 | 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 | 1582 | #define NFT_NG_MAX (__NFT_NG_MAX - 1) |
| 1582 | 1583 | |
| 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 | + | |
| 1583 | 1650 | #endif /* _LINUX_NF_TABLES_H */ |