summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
authorJosef Miegl <josef@miegl.cz>2023-03-04 22:18:34 +0100
committerLuca Boccassi <luca.boccassi@gmail.com>2023-03-06 20:58:30 +0000
commit417283c5c3bc0441526a96cd7e616b900919da75 (patch)
treefd0a4f47495d952c00195e53177616cb74750d20 /src/network
parent27e695840c74fc95ae50e7ea0074512bbc778f73 (diff)
downloadsystemd-417283c5c3bc0441526a96cd7e616b900919da75.tar.gz
network: geneve: add InheritInnerProtocol flag
Diffstat (limited to 'src/network')
-rw-r--r--src/network/netdev/geneve.c6
-rw-r--r--src/network/netdev/geneve.h2
-rw-r--r--src/network/netdev/netdev-gperf.gperf1
3 files changed, 9 insertions, 0 deletions
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