From 417283c5c3bc0441526a96cd7e616b900919da75 Mon Sep 17 00:00:00 2001 From: Josef Miegl Date: Sat, 4 Mar 2023 22:18:34 +0100 Subject: network: geneve: add InheritInnerProtocol flag --- src/network/netdev/geneve.c | 6 ++++++ src/network/netdev/geneve.h | 2 ++ src/network/netdev/netdev-gperf.gperf | 1 + 3 files changed, 9 insertions(+) (limited to 'src/network') diff --git a/src/network/netdev/geneve.c b/src/network/netdev/geneve.c index 777a32d75c..7d5a8679d1 100644 --- a/src/network/netdev/geneve.c +++ b/src/network/netdev/geneve.c @@ -89,6 +89,12 @@ static int netdev_geneve_fill_message_create(NetDev *netdev, Link *link, sd_netl return r; } + if (v->inherit_inner_protocol) { + r = sd_netlink_message_append_flag(m, IFLA_GENEVE_INNER_PROTO_INHERIT); + if (r < 0) + return r; + } + if (v->geneve_df != _NETDEV_GENEVE_DF_INVALID) { r = sd_netlink_message_append_u8(m, IFLA_GENEVE_DF, v->geneve_df); if (r < 0) diff --git a/src/network/netdev/geneve.h b/src/network/netdev/geneve.h index 1f0f15c2ad..3cbf694bba 100644 --- a/src/network/netdev/geneve.h +++ b/src/network/netdev/geneve.h @@ -37,6 +37,8 @@ struct Geneve { GeneveDF geneve_df; union in_addr_union remote; + + bool inherit_inner_protocol; }; DEFINE_NETDEV_CAST(GENEVE, Geneve); diff --git a/src/network/netdev/netdev-gperf.gperf b/src/network/netdev/netdev-gperf.gperf index 3cfcd51e63..ade5b1b919 100644 --- a/src/network/netdev/netdev-gperf.gperf +++ b/src/network/netdev/netdev-gperf.gperf @@ -162,6 +162,7 @@ GENEVE.UDP6ZeroChecksumTx, config_parse_bool, GENEVE.DestinationPort, config_parse_ip_port, 0, offsetof(Geneve, dest_port) GENEVE.IPDoNotFragment, config_parse_geneve_df, 0, offsetof(Geneve, geneve_df) GENEVE.FlowLabel, config_parse_geneve_flow_label, 0, 0 +GENEVE.InheritInnerProtocol, config_parse_bool, 0, offsetof(Geneve, inherit_inner_protocol) MACsec.Port, config_parse_macsec_port, 0, 0 MACsec.Encrypt, config_parse_tristate, 0, offsetof(MACsec, encrypt) MACsecReceiveChannel.Port, config_parse_macsec_port, 0, 0 -- cgit v1.2.1