mirror of
https://github.com/systemd/systemd
synced 2024-10-15 20:45:09 +00:00
networkd: remote checksum offload for vxlan (#4110)
This patch adds support to remote checksum checksum offload to VXLAN. This patch adds RemoteCheckSumTx and RemoteCheckSumRx vxlan configuration to enable remote checksum offload for transmit and receive on the VXLAN tunnel.
This commit is contained in:
parent
171b533800
commit
1644102735
|
@ -554,6 +554,18 @@
|
|||
<para>A boolean. When true, receiving zero checksums in VXLAN/IPv6 is turned on.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>RemoteCheckSumTx=</varname></term>
|
||||
<listitem>
|
||||
<para>A boolean. When true, remote transmit checksum offload of VXLAN is turned on.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>RemoteCheckSumRx=</varname></term>
|
||||
<listitem>
|
||||
<para>A boolean. When true, remote receive checksum offload in VXLAN is turned on.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><varname>GroupPolicyExtension=</varname></term>
|
||||
<listitem>
|
||||
|
|
|
@ -65,6 +65,8 @@ VXLAN.RouteShortCircuit, config_parse_bool, 0,
|
|||
VXLAN.UDPCheckSum, config_parse_bool, 0, offsetof(VxLan, udpcsum)
|
||||
VXLAN.UDP6ZeroCheckSumRx, config_parse_bool, 0, offsetof(VxLan, udp6zerocsumrx)
|
||||
VXLAN.UDP6ZeroCheckSumTx, config_parse_bool, 0, offsetof(VxLan, udp6zerocsumtx)
|
||||
VXLAN.RemoteCheckSumTx, config_parse_bool, 0, offsetof(VxLan, remote_csum_tx)
|
||||
VXLAN.RemoteCheckSumRx, config_parse_bool, 0, offsetof(VxLan, remote_csum_rx)
|
||||
VXLAN.FDBAgeingSec, config_parse_sec, 0, offsetof(VxLan, fdb_ageing)
|
||||
VXLAN.GroupPolicyExtension, config_parse_bool, 0, offsetof(VxLan, group_policy)
|
||||
VXLAN.MaximumFDBEntries, config_parse_unsigned, 0, offsetof(VxLan, max_fdb)
|
||||
|
|
|
@ -112,6 +112,14 @@ static int netdev_vxlan_fill_message_create(NetDev *netdev, Link *link, sd_netli
|
|||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_UDP_ZERO_CSUM6_RX attribute: %m");
|
||||
|
||||
r = sd_netlink_message_append_u8(m, IFLA_VXLAN_REMCSUM_TX, v->remote_csum_tx);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_REMCSUM_TX attribute: %m");
|
||||
|
||||
r = sd_netlink_message_append_u8(m, IFLA_VXLAN_REMCSUM_RX, v->remote_csum_rx);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_REMCSUM_RX attribute: %m");
|
||||
|
||||
r = sd_netlink_message_append_u16(m, IFLA_VXLAN_PORT, htobe16(v->dest_port));
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_PORT attribute: %m");
|
||||
|
|
|
@ -50,6 +50,8 @@ struct VxLan {
|
|||
bool udpcsum;
|
||||
bool udp6zerocsumtx;
|
||||
bool udp6zerocsumrx;
|
||||
bool remote_csum_tx;
|
||||
bool remote_csum_rx;
|
||||
bool group_policy;
|
||||
|
||||
struct ifla_vxlan_port_range port_range;
|
||||
|
|
Loading…
Reference in a new issue