]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: netdev - bond add support for ARP missed max
authorSusant Sahani <ssahani@vmware.com>
Thu, 15 Feb 2024 10:41:22 +0000 (16:11 +0530)
committerSusant Sahani <ssahani@vmware.com>
Fri, 16 Feb 2024 09:14:51 +0000 (14:44 +0530)
Allows to configure bond arp_missed_max is the maximum number of arp_interval monitor cycle
for missed ARP replies. If this number is exceeded, link is reported as
down.

man/systemd.netdev.xml
src/libsystemd/sd-netlink/netlink-types-rtnl.c
src/network/netdev/bond.c
src/network/netdev/bond.h
src/network/netdev/netdev-gperf.gperf
test/fuzz/fuzz-netdev-parser/bond.netdev

index bf3b5c21daef51a7eb175f402c45a2b7aa672c0e..08da75f06fcc637b77cb1f09c424f8a8f34839cd 100644 (file)
           <xi:include href="version-info.xml" xpointer="v220"/>
         </listitem>
       </varlistentry>
+
+      <varlistentry>
+        <term><varname>ARPMissedMax=</varname></term>
+        <listitem>
+          <para>Specify the maximum number of arp interval monitor cycle
+          for missed ARP replies. If this number is exceeded, link is reported as
+          down. Defaults to unset.
+          </para>
+
+          <xi:include href="version-info.xml" xpointer="v256"/>
+        </listitem>
+      </varlistentry>
     </variablelist>
 
     <para>For more detail information see
index 681b3086d08f79706275649042f2b1cd88e8fa1d..1fa88b1ca58e9edf73fac6d541b427129ca7092b 100644 (file)
@@ -124,6 +124,7 @@ static const NLAPolicy rtnl_link_info_data_bond_policies[] = {
         [IFLA_BOND_AD_ACTOR_SYSTEM]     = BUILD_POLICY_WITH_SIZE(ETHER_ADDR, ETH_ALEN),
         [IFLA_BOND_TLB_DYNAMIC_LB]      = BUILD_POLICY(U8),
         [IFLA_BOND_PEER_NOTIF_DELAY]    = BUILD_POLICY(U32),
+        [IFLA_BOND_MISSED_MAX]          = BUILD_POLICY(U8),
 };
 
 static const NLAPolicy rtnl_link_info_data_bridge_policies[] = {
index 4d75a0d6bf224abdd45fef12107ff3785fccd88a..ecf091356bd93459dfba90dd8b8b4410b5765515 100644 (file)
@@ -198,6 +198,12 @@ static int netdev_bond_fill_message_create(NetDev *netdev, Link *link, sd_netlin
                         return r;
         }
 
+        if (b->arp_missed_max > 0) {
+                r = sd_netlink_message_append_u8(m, IFLA_BOND_MISSED_MAX, b->arp_missed_max);
+                if (r < 0)
+                        return r;
+        }
+
         if (b->arp_interval > 0 && !ordered_set_isempty(b->arp_ip_targets)) {
                 void *val;
                 int n = 0;
index e4b0a0d94d172181117b58cc8501e3d062b9356f..b301fa67f023df61bb5baa223fdc4ff58355336b 100644 (file)
@@ -34,6 +34,8 @@ typedef struct Bond {
         uint16_t ad_user_port_key;
         struct ether_addr ad_actor_system;
 
+        uint8_t arp_missed_max;
+
         usec_t miimon;
         usec_t updelay;
         usec_t downdelay;
index d5aa522de8d2b8864bbe5285f56d7ea3d560963e..eb28b9be5404c3b2b6158dc9e80d789a1de57bf0 100644 (file)
@@ -218,6 +218,7 @@ Bond.LearnPacketIntervalSec,              config_parse_sec,
 Bond.AdActorSystemPriority,               config_parse_ad_actor_sys_prio,            0,                             offsetof(Bond, ad_actor_sys_prio)
 Bond.AdUserPortKey,                       config_parse_ad_user_port_key,             0,                             offsetof(Bond, ad_user_port_key)
 Bond.AdActorSystem,                       config_parse_ad_actor_system,              0,                             offsetof(Bond, ad_actor_system)
+Bond.ARPMissedMax,                        config_parse_uint8,                        0,                             offsetof(Bond, arp_missed_max)
 Bridge.HelloTimeSec,                      config_parse_sec,                          0,                             offsetof(Bridge, hello_time)
 Bridge.MaxAgeSec,                         config_parse_sec,                          0,                             offsetof(Bridge, max_age)
 Bridge.AgeingTimeSec,                     config_parse_sec,                          0,                             offsetof(Bridge, ageing_time)
index 4e4885c44c7a0cbed44e8084a32a41f890fe455a..04e237dd9630856af74f74f5f61727c3c4b370b7 100644 (file)
@@ -14,5 +14,6 @@ MinLinks=1
 AdActorSystemPriority=1218
 AdUserPortKey=811
 AdActorSystem=00:11:22:33:44:55
+ARPMissedMax=10
 # feed the sanitizer
 AdActorSystem=00:11:22:33:44:55