To add options setting and dumping, .build_state(), .fill_encap() and .get_encap_size() in ip_tun_lwt_ops needs to be extended: ip_tun_build_state(): ip_tun_parse_opts(): ip_tun_parse_opts_geneve() ip_tun_fill_encap_info(): ip_tun_fill_encap_opts(): ip_tun_fill_encap_opts_geneve() ip_tun_encap_nlsize() ip_tun_opts_nlsize(): if (tun_flags & TUNNEL_GENEVE_OPT) ip_tun_parse_opts(), ip_tun_fill_encap_opts() and ip_tun_opts_nlsize() processes LWTUNNEL_IP_OPTS. ip_tun_parse_opts_geneve(), ip_tun_fill_encap_opts_geneve() and if (tun_flags & TUNNEL_GENEVE_OPT) processes LWTUNNEL_IP_OPTS_GENEVE.
Showing the changes to include/uapi/linux (1 of 2 files). Show all
Unified · Split
| @@ -27,6 +27,7 @@ enum lwtunnel_ip_t { · 26 unmodified lines | ||
| 27 | 27 | LWTUNNEL_IP_TOS, |
| 28 | 28 | LWTUNNEL_IP_FLAGS, |
| 29 | 29 | LWTUNNEL_IP_PAD, |
| 30 | + LWTUNNEL_IP_OPTS, | |
| 30 | 31 | __LWTUNNEL_IP_MAX, |
| 31 | 32 | }; |
| 32 | 33 | |
| @@ -41,11 +42,30 @@ enum lwtunnel_ip6_t { · 8 unmodified lines | ||
| 41 | 42 | LWTUNNEL_IP6_TC, |
| 42 | 43 | LWTUNNEL_IP6_FLAGS, |
| 43 | 44 | LWTUNNEL_IP6_PAD, |
| 45 | + LWTUNNEL_IP6_OPTS, | |
| 44 | 46 | __LWTUNNEL_IP6_MAX, |
| 45 | 47 | }; |
| 46 | 48 | |
| 47 | 49 | #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1) |
| 48 | 50 | |
| 51 | +enum { | |
| 52 | + LWTUNNEL_IP_OPTS_UNSPEC, | |
| 53 | + LWTUNNEL_IP_OPTS_GENEVE, | |
| 54 | + __LWTUNNEL_IP_OPTS_MAX, | |
| 55 | +}; | |
| 56 | + | |
| 57 | +#define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1) | |
| 58 | + | |
| 59 | +enum { | |
| 60 | + LWTUNNEL_IP_OPT_GENEVE_UNSPEC, | |
| 61 | + LWTUNNEL_IP_OPT_GENEVE_CLASS, | |
| 62 | + LWTUNNEL_IP_OPT_GENEVE_TYPE, | |
| 63 | + LWTUNNEL_IP_OPT_GENEVE_DATA, | |
| 64 | + __LWTUNNEL_IP_OPT_GENEVE_MAX, | |
| 65 | +}; | |
| 66 | + | |
| 67 | +#define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1) | |
| 68 | + | |
| 49 | 69 | enum { |
| 50 | 70 | LWT_BPF_PROG_UNSPEC, |
| 51 | 71 | LWT_BPF_PROG_FD, |