From a5ce95bd055ae553a9979442d61701c04c11a952 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Fri, 30 Jan 2026 16:13:15 +0800 Subject: [PATCH 01/10] [submodule] Update submodule sonic-restapi to the latest HEAD automatically (#25242) #### Why I did it src/sonic-restapi ``` * 66d1605 - (HEAD -> 202505, origin/202505) [Pfx_len] Extend prefix length for routes and advertisement (#181) (9 days ago) [mssonicbld] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-restapi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-restapi b/src/sonic-restapi index 5c8f3d73ce..66d16050ae 160000 --- a/src/sonic-restapi +++ b/src/sonic-restapi @@ -1 +1 @@ -Subproject commit 5c8f3d73cee348e437f6bd81f1397f301ae48f64 +Subproject commit 66d16050ae8645a7bacf10b6b444f5b9be118f8d From d507efee5bcd2470eb17f33590cfab9bb1f01138 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Sun, 1 Feb 2026 18:12:23 +0800 Subject: [PATCH 02/10] [submodule] Update submodule sonic-linux-kernel to the latest HEAD automatically (#25239) #### Why I did it src/sonic-linux-kernel ``` * dbb27c6 - (HEAD -> 202505, origin/202505) update docker slave name (#527) (4 days ago) [yijingyan2] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-linux-kernel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-linux-kernel b/src/sonic-linux-kernel index 8d5dee78ad..dbb27c6fd2 160000 --- a/src/sonic-linux-kernel +++ b/src/sonic-linux-kernel @@ -1 +1 @@ -Subproject commit 8d5dee78adddc75ff061b591aa748e86633c8379 +Subproject commit dbb27c6fd2f01b04b4d8a2f5023ddfdd9da389ec From 1968bb01df8584d6b356bf15b1b9ada6c8980935 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Tue, 3 Feb 2026 17:12:54 +0800 Subject: [PATCH 03/10] [submodule] Update submodule sonic-swss-common to the latest HEAD automatically (#25317) #### Why I did it src/sonic-swss-common ``` * 084b495 - (HEAD -> 202505, origin/202505) Create a new PORT_PHY_ATTR table (#1145) (48 minutes ago) [mssonicbld] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-swss-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss-common b/src/sonic-swss-common index ebebd2c8ed..084b495339 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit ebebd2c8ed859da58fd60909707e83e4c7bdb060 +Subproject commit 084b49533951bc1108152c3f9d970f1b55d12e99 From be9c610d0c0be4d17492c047a900114e8f019b6f Mon Sep 17 00:00:00 2001 From: RishiRewadkarCisco Date: Fri, 6 Feb 2026 03:53:28 -0800 Subject: [PATCH 04/10] [202505] YANG: Add ZTP models (#25322) Double commit: #22237 During ZTP, the process creates temporary CONFIG_DB settings and if yang validation is enabled, these settings can cause failures. Lets add a YANG model and tests so these won't fail even though these are temporary settings. Failure might look like the below... [342113.096731] sonic-ztp[789615]: main() [342113.096785] sonic-ztp[789615]: File "/usr/local/bin/config_validator.py", line 40, in main 2025 Mar 11 15:43:01.942688 ztp-dut2 INFO sonic-ztp[789615]: main() [342113.096855] sonic-ztp[789615]: raise Exception("Tables without yang models: " + str(yang_parser.tablesWithOutYang)) 2025 Mar 11 15:43:01.942742 ztp-dut2 INFO sonic-ztp[789615]: File "/usr/local/bin/config_validator.py", line 40, in main [342113.096926] sonic-ztp[789615]: Exception: Tables without yang models: {'ZTP': {'mode': {'inband': 'true', 'ipv4': 'true', 'ipv6': 'true', 'out-of-band': 'true', 'product-name': '9716-32D-O-AC-AB-F-US', 'profile': 'active', 'serial-no': '971632D2451040'}}} 2025 Mar 11 15:43:01.942811 ztp-dut2 INFO sonic-ztp[789615]: raise Exception("Tables without yang models: " + str(yang_parser.tablesWithOutYang)) 2025 Mar 11 15:43:01.942882 ztp-dut2 INFO sonic-ztp[789615]: Exception: Tables without yang models: {'ZTP': {'mode': {'inband': 'true', 'ipv4': 'true', 'ipv6': 'true', 'out-of-band': 'true', 'product-name': '9716-32D-O-AC-AB-F-US', 'profile': 'active', 'serial-no': '971632D2451040'}}} 2025 Mar 11 15:43:01.967529 ztp-dut2 INFO sonic-ztp[788029]: sonic_yang(6):Note: Below table(s) have no YANG models: ZTP Why I did it Work item tracking Signed-off-by: rishi rewadkar --- src/sonic-yang-models/setup.py | 1 + .../tests/files/sample_config_db.json | 11 +++ .../tests/yang_model_tests/tests/ztp.json | 25 +++++++ .../yang_model_tests/tests_config/ztp.json | 66 +++++++++++++++++ .../yang-models/sonic-ztp.yang | 70 +++++++++++++++++++ 5 files changed, 173 insertions(+) create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests/ztp.json create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests_config/ztp.json create mode 100644 src/sonic-yang-models/yang-models/sonic-ztp.yang diff --git a/src/sonic-yang-models/setup.py b/src/sonic-yang-models/setup.py index a979a0c8c7..eef8da65bb 100644 --- a/src/sonic-yang-models/setup.py +++ b/src/sonic-yang-models/setup.py @@ -144,6 +144,7 @@ 'sonic-serial-console.yang', 'sonic-smart-switch.yang', 'sonic-srv6.yang', + 'sonic-ztp.yang', ] class my_build_py(build_py): diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index 721a0fa7b4..1325190830 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -3002,6 +3002,17 @@ "DEBUG_COUNTER_DROP_REASON": { "DEBUG_4|DIP_LINK_LOCAL": {}, "DEBUG_4|SIP_LINK_LOCAL": {} + }, + "ZTP" : { + "mode" : { + "profile" : "active", + "inband" : "true", + "out-of-band" : "true", + "ipv4" : "true", + "ipv6" : "true", + "product-name" : "product name", + "serial-no" : "1234-5678-91A" + } } }, "SAMPLE_CONFIG_DB_UNKNOWN": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/ztp.json b/src/sonic-yang-models/tests/yang_model_tests/tests/ztp.json new file mode 100644 index 0000000000..5911f1ca66 --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/ztp.json @@ -0,0 +1,25 @@ +{ + "ZTP_VALID": { + "desc": "ZTP All Valid" + }, + "ZTP_PROFILE_INVALID": { + "desc": "ZTP profile invalid", + "eStrKey" : "InvalidValue" + }, + "ZTP_INBAND_INVALID": { + "desc": "ZTP inband invalid", + "eStrKey" : "InvalidValue" + }, + "ZTP_OUTOFBAND_INVALID": { + "desc": "ZTP out-of-band invalid", + "eStrKey" : "InvalidValue" + }, + "ZTP_IPV4_INVALID": { + "desc": "ZTP ipv4 invalid", + "eStrKey" : "InvalidValue" + }, + "ZTP_IPV6_INVALID": { + "desc": "ZTP ipv6 invalid", + "eStrKey" : "InvalidValue" + } +} diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/ztp.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/ztp.json new file mode 100644 index 0000000000..471d1f22fd --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/ztp.json @@ -0,0 +1,66 @@ +{ + "ZTP_VALID": { + "sonic-ztp:sonic-ztp": { + "sonic-ztp:ZTP": { + "sonic-ztp:mode": { + "profile" : "active", + "inband" : "true", + "out-of-band" : "true", + "ipv4" : "true", + "ipv6" : "true", + "product-name" : "product name", + "serial-no" : "1234-5678-9A1" + } + } + } + }, + "ZTP_PROFILE_INVALID": { + "sonic-ztp:sonic-ztp": { + "sonic-ztp:ZTP": { + "sonic-ztp:mode": { + "profile" : "invalid" + } + } + } + }, + "ZTP_INBAND_INVALID": { + "sonic-ztp:sonic-ztp": { + "sonic-ztp:ZTP": { + "sonic-ztp:mode": { + "profile" : "active", + "inband": "invalid" + } + } + } + }, + "ZTP_OUTOFBAND_INVALID": { + "sonic-ztp:sonic-ztp": { + "sonic-ztp:ZTP": { + "sonic-ztp:mode": { + "profile" : "active", + "out-of-band": "invalid" + } + } + } + }, + "ZTP_IPV4_INVALID": { + "sonic-ztp:sonic-ztp": { + "sonic-ztp:ZTP": { + "sonic-ztp:mode": { + "profile" : "active", + "ipv4": "invalid" + } + } + } + }, + "ZTP_IPV6_INVALID": { + "sonic-ztp:sonic-ztp": { + "sonic-ztp:ZTP": { + "sonic-ztp:mode": { + "profile" : "active", + "ipv6": "invalid" + } + } + } + } +} diff --git a/src/sonic-yang-models/yang-models/sonic-ztp.yang b/src/sonic-yang-models/yang-models/sonic-ztp.yang new file mode 100644 index 0000000000..31743f6f33 --- /dev/null +++ b/src/sonic-yang-models/yang-models/sonic-ztp.yang @@ -0,0 +1,70 @@ +module sonic-ztp { + + yang-version 1.1; + + namespace "http://github.com/sonic-net/sonic-ztp"; + prefix ztp; + + description "ZTP YANG Module for SONiC OS"; + + revision 2025-04-03 { + description "First Revision"; + } + + container sonic-ztp { + + container ZTP { + + description "ZTP part of config_db.json used only temporarily during ZTP provisioning"; + + container mode { + + leaf profile { + type enumeration { + enum active; + } + description "Whether or not ZTP is active"; + } + + leaf inband { + type boolean; + default true; + description "If in-band ports are allowed to be used for ZTP"; + } + + leaf out-of-band { + type boolean; + default true; + description "If out-of-band ports are allowed to be used for ZTP"; + } + + leaf ipv4 { + type boolean; + default true; + description "If ipv4 is allowed to be used for ZTP"; + } + + leaf ipv6 { + type boolean; + default true; + description "If ipv6 is allowed to be used for ZTP"; + } + + leaf product-name { + type string; + description "Product string as returned from decode-syseeprom -p"; + } + + leaf serial-no { + type string; + description "Serial number as returned from decode-syseeprom -s"; + } + + } + /* end of container mode */ + } + /* end of container ZTP */ + } + /* end of top level container */ +} +/* end of module sonic-ztp */ From d74ae3e6e65d4cf32b9e8e7a5f9304805705bba5 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Tue, 10 Feb 2026 16:12:52 +0800 Subject: [PATCH 05/10] [submodule] Update submodule sonic-sairedis to the latest HEAD automatically (#25404) #### Why I did it src/sonic-sairedis ``` * d5e03ff7 - (HEAD -> 202505, origin/202505) [202511][ci] use correct slave container for each branch (#1759) (21 hours ago) [mssonicbld] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-sairedis | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-sairedis b/src/sonic-sairedis index 65c8a8fc22..d5e03ff768 160000 --- a/src/sonic-sairedis +++ b/src/sonic-sairedis @@ -1 +1 @@ -Subproject commit 65c8a8fc22f21f25117b7b6539cb39323ddc8990 +Subproject commit d5e03ff768b02bba4e58cd49b496e734caef7610 From 93d92110b754918e5f8877913d489f88e30495c4 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Mon, 16 Feb 2026 14:12:15 +0800 Subject: [PATCH 06/10] Add lldpd patch to fix incomplete interface detection (#25500) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #### Why I did it On 5640 full topology testbed, during system boots up, 457(456 Ethernet + eth0) interfaces are booting up, lldpd is initializing too. when lldpd initializing, it will send RTM_GETLINK dump to get all interfaces, but during this period, some new interfaces are boots up, lldpd subscribes async notification of netlink update(`levent_iface_subscribe`). Since queries and changes are using same `sokcet cfg->g_netlink->nl_socket,` previous `RTM_GETLINK` dump interfaces(`netlink_recv RTM_GETLINK`) is impacted by the new RTM_NEWLINK messages handling process(`netlink_change_cb`). About 200+ interfaces are missing in lldp neighbor. Only 200+ interfaces exist which have RTM_NEWLINK arrived after lldpd initialization. - Phenomenon: 1. Incorrect Chassis ID - Chassis ID being incorrect, should be mac but show hostname instead a. Fail to find eth0 and fallback to hostname. WARNING lldp#lldpcli[29]: cannot find port eth0 1. lldpcli config failure - The port is up already, but later lldp cannot find the port, hence missing port up events and never be able to recover. The symptom will be both sides are missing lldp entries. a. <11>2026-02-05T04:18:42.052245+00:00 ATL21-0101-0014-12BT0 ERR lldp#lldpmgrd[38]: Command failed '['lldpcli', 'configure', 'ports', 'Ethernet501', 'lldp', 'portidsubtype', 'local', 'etp63f', 'description', 'ATL210101580129:A1.PORT8']': 2026-02-05T04:18:42 [WARN/lldpctl] cannot find port Ethernet501#012 - command was failed 6 times, disabling retry ##### Work item tracking - Microsoft ADO **36610002**: #### How I did it now sonic is using lldpd 1.0.16. There is a known issue in lldpd community: In some cases lldpd cannot get all interfaces · Issue #611 · lldpd/lldpd And it's fixed, but no tag for 1.0.16 :daemon/netlink: use a different socket for changes and queries · lldpd/lldpd@88fe3fa Add this commit as a new patch for sonic to fix this issue. #### How to verify it config reload can repro this issue easily on 5640 full topology testbed. Try run "config reload" and verify if all lldp neighbors are up. #### Which release branch to backport (provide reason below if selected) - [ ] 202305 - [ ] 202311 - [ ] 202405 - [ ] 202411 - [ ] 202505 - [x] 202511 #### Tested branch (Please provide the tested image version) - [ ] - [ ] #### Description for the changelog #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) --- ...erent-socket-for-changes-and-queries.patch | 191 ++++++++++++++++++ src/lldpd/patch/series | 3 +- 2 files changed, 193 insertions(+), 1 deletion(-) create mode 100644 src/lldpd/patch/0002-use-a-different-socket-for-changes-and-queries.patch diff --git a/src/lldpd/patch/0002-use-a-different-socket-for-changes-and-queries.patch b/src/lldpd/patch/0002-use-a-different-socket-for-changes-and-queries.patch new file mode 100644 index 0000000000..139b26e528 --- /dev/null +++ b/src/lldpd/patch/0002-use-a-different-socket-for-changes-and-queries.patch @@ -0,0 +1,191 @@ +diff --git a/src/daemon/netlink.c b/src/daemon/netlink.c +index 55f9b66..e7db1fc 100644 +--- a/src/daemon/netlink.c ++++ b/src/daemon/netlink.c +@@ -38,7 +38,8 @@ struct netlink_req { + }; + + struct lldpd_netlink { +- int nl_socket; ++ int nl_socket_queries; ++ int nl_socket_changes; + int nl_socket_recv_size; + /* Cache */ + struct interfaces_device_list *devices; +@@ -94,34 +95,35 @@ netlink_socket_set_buffer_size(int s, int optname, const char *optname_str, int + * @return 0 on success, -1 otherwise + */ + static int +-netlink_connect(struct lldpd *cfg, int protocol, unsigned groups) ++netlink_connect(struct lldpd *cfg, unsigned groups) + { +- int s; ++ int s1 = -1, s2 = -1; + struct sockaddr_nl local = { .nl_family = AF_NETLINK, + .nl_pid = 0, + .nl_groups = groups }; + +- /* Open Netlink socket */ +- log_debug("netlink", "opening netlink socket"); +- s = socket(AF_NETLINK, SOCK_RAW, protocol); +- if (s == -1) { +- log_warn("netlink", "unable to open netlink socket"); +- return -1; ++ /* Open Netlink socket for subscriptions */ ++ log_debug("netlink", "opening netlink sockets"); ++ s1 = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE); ++ if (s1 == -1) { ++ log_warn("netlink", "unable to open netlink socket for changes"); ++ goto error; + } + if (NETLINK_SEND_BUFSIZE && +- netlink_socket_set_buffer_size(s, SO_SNDBUF, "SO_SNDBUF", ++ netlink_socket_set_buffer_size(s1, SO_SNDBUF, "SO_SNDBUF", + NETLINK_SEND_BUFSIZE) == -1) { +- close(s); +- return -1; ++ log_warn("netlink", "unable to set send buffer size"); ++ goto error; + } + +- int rc = netlink_socket_set_buffer_size(s, SO_RCVBUF, "SO_RCVBUF", ++ int rc = netlink_socket_set_buffer_size(s1, SO_RCVBUF, "SO_RCVBUF", + NETLINK_RECEIVE_BUFSIZE); + switch (rc) { + case -1: +- close(s); +- return -1; ++ log_warn("netlink", "unable to set receiver buffer size"); ++ goto error; + case -2: ++ /* Cannot set size */ + cfg->g_netlink->nl_socket_recv_size = 0; + break; + default: +@@ -129,13 +131,24 @@ netlink_connect(struct lldpd *cfg, int protocol, unsigned groups) + break; + } + if (groups && +- bind(s, (struct sockaddr *)&local, sizeof(struct sockaddr_nl)) < 0) { ++ bind(s1, (struct sockaddr *)&local, sizeof(struct sockaddr_nl)) < 0) { + log_warn("netlink", "unable to bind netlink socket"); +- close(s); +- return -1; ++ goto error; + } +- cfg->g_netlink->nl_socket = s; ++ ++ /* Opening Netlink socket to for queries */ ++ s2 = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE); ++ if (s2 == -1) { ++ log_warn("netlink", "unable to open netlink socket for queries"); ++ goto error; ++ } ++ cfg->g_netlink->nl_socket_changes = s1; ++ cfg->g_netlink->nl_socket_queries = s2; + return 0; ++error: ++ if (s1 != -1) close(s1); ++ if (s2 != -1) close(s2); ++ return -1; + } + + /** +@@ -525,13 +538,12 @@ netlink_merge(struct interfaces_device *old, struct interfaces_device *new) + * @return 0 on success, -1 on error + */ + static int +-netlink_recv(struct lldpd *cfg, struct interfaces_device_list *ifs, ++netlink_recv(struct lldpd *cfg, int s, struct interfaces_device_list *ifs, + struct interfaces_address_list *ifas) + { + int end = 0, ret = 0, flags, retry = 0; + struct iovec iov; + int link_update = 0; +- int s = cfg->g_netlink->nl_socket; + + struct interfaces_device *ifdold; + struct interfaces_device *ifdnew; +@@ -570,8 +582,10 @@ netlink_recv(struct lldpd *cfg, struct interfaces_device_list *ifs, + } + int rsize = cfg->g_netlink->nl_socket_recv_size; + if (errno == ENOBUFS && rsize > 0 && +- rsize < NETLINK_MAX_RECEIVE_BUFSIZE) { +- /* Try to increase buffer size */ ++ rsize < NETLINK_MAX_RECEIVE_BUFSIZE && ++ s == cfg->g_netlink->nl_socket_changes) { ++ /* Try to increase buffer size, only for the ++ * socket used to receive changes */ + rsize *= 2; + if (rsize > NETLINK_MAX_RECEIVE_BUFSIZE) { + rsize = NETLINK_MAX_RECEIVE_BUFSIZE; +@@ -843,7 +857,7 @@ netlink_subscribe_changes(struct lldpd *cfg) + netlink_group_mask(RTNLGRP_IPV4_IFADDR) | + netlink_group_mask(RTNLGRP_IPV6_IFADDR); + +- return netlink_connect(cfg, NETLINK_ROUTE, groups); ++ return netlink_connect(cfg, groups); + } + + /** +@@ -852,7 +866,8 @@ static void + netlink_change_cb(struct lldpd *cfg) + { + if (cfg->g_netlink == NULL) return; +- netlink_recv(cfg, cfg->g_netlink->devices, cfg->g_netlink->addresses); ++ netlink_recv(cfg, cfg->g_netlink->nl_socket_changes, cfg->g_netlink->devices, ++ cfg->g_netlink->addresses); + } + + /** +@@ -897,22 +912,24 @@ netlink_initialize(struct lldpd *cfg) + } + TAILQ_INIT(ifs); + +- if (netlink_send(cfg->g_netlink->nl_socket, RTM_GETADDR, AF_UNSPEC, 1) == -1) ++ if (netlink_send(cfg->g_netlink->nl_socket_queries, RTM_GETADDR, AF_UNSPEC, ++ 1) == -1) + goto end; +- netlink_recv(cfg, NULL, ifaddrs); +- if (netlink_send(cfg->g_netlink->nl_socket, RTM_GETLINK, AF_PACKET, 2) == -1) ++ netlink_recv(cfg, cfg->g_netlink->nl_socket_queries, NULL, ifaddrs); ++ if (netlink_send(cfg->g_netlink->nl_socket_queries, RTM_GETLINK, AF_PACKET, ++ 2) == -1) + goto end; +- netlink_recv(cfg, ifs, NULL); ++ netlink_recv(cfg, cfg->g_netlink->nl_socket_queries, ifs, NULL); + #ifdef ENABLE_DOT1 + /* If we have a bridge, search for VLAN-aware bridges */ + TAILQ_FOREACH (iff, ifs, next) { + if (iff->type & IFACE_BRIDGE_T) { + log_debug("netlink", + "interface %s is a bridge, check for VLANs", iff->name); +- if (netlink_send(cfg->g_netlink->nl_socket, RTM_GETLINK, ++ if (netlink_send(cfg->g_netlink->nl_socket_queries, RTM_GETLINK, + AF_BRIDGE, 3) == -1) + goto end; +- netlink_recv(cfg, ifs, NULL); ++ netlink_recv(cfg, cfg->g_netlink->nl_socket_queries, ifs, NULL); + break; + } + } +@@ -920,7 +937,7 @@ netlink_initialize(struct lldpd *cfg) + + /* Listen to any future change */ + cfg->g_iface_cb = netlink_change_cb; +- if (levent_iface_subscribe(cfg, cfg->g_netlink->nl_socket) == -1) { ++ if (levent_iface_subscribe(cfg, cfg->g_netlink->nl_socket_changes) == -1) { + goto end; + } + +@@ -937,7 +954,10 @@ void + netlink_cleanup(struct lldpd *cfg) + { + if (cfg->g_netlink == NULL) return; +- if (cfg->g_netlink->nl_socket != -1) close(cfg->g_netlink->nl_socket); ++ if (cfg->g_netlink->nl_socket_changes != -1) ++ close(cfg->g_netlink->nl_socket_changes); ++ if (cfg->g_netlink->nl_socket_queries != -1) ++ close(cfg->g_netlink->nl_socket_queries); + interfaces_free_devices(cfg->g_netlink->devices); + interfaces_free_addresses(cfg->g_netlink->addresses); diff --git a/src/lldpd/patch/series b/src/lldpd/patch/series index 8aa5ab8d8f..c92e03c1ba 100644 --- a/src/lldpd/patch/series +++ b/src/lldpd/patch/series @@ -1,2 +1,3 @@ -# This series applies on GIT commit 396961a038a38675d46f96eaa7b430b2a1f8701b +# This series applies on GIT commit 7a595f1adfa4ae5302ba7953e14fd69c8579aa16 0001-return-error-when-port-does-not-exist.patch +0002-use-a-different-socket-for-changes-and-queries.patch From 5c85f157b79f31c98898a948b59b7fdec506017c Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Mon, 16 Feb 2026 16:12:48 +0800 Subject: [PATCH 07/10] [submodule] Update submodule sonic-utilities to the latest HEAD automatically (#25483) #### Why I did it src/sonic-utilities ``` * 7511bf2f - (HEAD -> 202505, origin/202505) Added counterpoll CLI support (#4246) (4 days ago) [Dhanasekar Rathinavel] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-utilities | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-utilities b/src/sonic-utilities index cfb5121723..7511bf2f8e 160000 --- a/src/sonic-utilities +++ b/src/sonic-utilities @@ -1 +1 @@ -Subproject commit cfb5121723e3e2a60b8e4e60014cccd777437fa0 +Subproject commit 7511bf2f8ea3582c2b67cf5016f8e8237e62882b From 04689916a8f1697ecd76cab45f1324985e04ee5f Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Mon, 16 Feb 2026 16:12:59 +0800 Subject: [PATCH 08/10] [submodule] Update submodule sonic-sairedis to the latest HEAD automatically (#25480) #### Why I did it src/sonic-sairedis ``` * 14db8ad4 - (HEAD -> 202505, origin/202505) Add PORT_SERDES_ATTR flex counter support (#1702) (4 days ago) [Dhanasekar Rathinavel] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-sairedis | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-sairedis b/src/sonic-sairedis index d5e03ff768..14db8ad445 160000 --- a/src/sonic-sairedis +++ b/src/sonic-sairedis @@ -1 +1 @@ -Subproject commit d5e03ff768b02bba4e58cd49b496e734caef7610 +Subproject commit 14db8ad4452f70f375795b2d7d7bf797d2c012b5 From e62bc19c61c1e28fdf64edb0660b350ee7256a3d Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Tue, 17 Feb 2026 17:12:29 +0800 Subject: [PATCH 09/10] [submodule] Update submodule sonic-swss-common to the latest HEAD automatically (#25482) #### Why I did it src/sonic-swss-common ``` * c1da74e - (HEAD -> 202505, origin/202505) Merge pull request #1149 from yejianquan/jianquanye/202505 (5 days ago) [Jianquan Ye] * 904569c - [202505] Temporarily disable test to get a successful build (5 days ago) [Jianquan Ye] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-swss-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss-common b/src/sonic-swss-common index 084b495339..c1da74eb08 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit 084b49533951bc1108152c3f9d970f1b55d12e99 +Subproject commit c1da74eb08be9a8170f41b9c1c8aca4c09a6091d From a287de434669684ba0d4222d7df078c3c9f75c0e Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Wed, 18 Feb 2026 02:12:33 +0800 Subject: [PATCH 10/10] [submodule] Update submodule sonic-swss to the latest HEAD automatically (#25481) #### Why I did it src/sonic-swss ``` * 139056bf - (HEAD -> 202505, origin/202505) Add PORT_SERDES_ATTR flex counter support in orchagent (#4017) (4 days ago) [Dhanasekar Rathinavel] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-swss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss b/src/sonic-swss index 278ff13eff..139056bf3b 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 278ff13eff55bde611a9df0f9170c96c5aecc478 +Subproject commit 139056bf3b3d7be7ce69dbd15319f1332229647e