It would be nice, but it was non-trivial so I opted to go this path first. These patches can be dropped once v248.2 is brought in.
On Tue, May 18, 2021 at 2:26 AM Alexander Kanavin <[email protected]> wrote: > > At this point it might be better to update systemd itself to 248? > > Alex > > On Tue, 18 May 2021 at 00:51, William A. Kennington III via > lists.openembedded.org <[email protected]> wrote: >> >> Backport a patch to fix the creation of static neighbors. >> >> Signed-off-by: William A. Kennington III <[email protected]> >> --- >> ...or-Always-add-neighbors-with-replace.patch | 50 +++++++++++++++++++ >> meta/recipes-core/systemd/systemd_247.6.bb | 1 + >> 2 files changed, 51 insertions(+) >> create mode 100644 >> meta/recipes-core/systemd/systemd/0001-network-neighbor-Always-add-neighbors-with-replace.patch >> >> diff --git >> a/meta/recipes-core/systemd/systemd/0001-network-neighbor-Always-add-neighbors-with-replace.patch >> >> b/meta/recipes-core/systemd/systemd/0001-network-neighbor-Always-add-neighbors-with-replace.patch >> new file mode 100644 >> index 0000000000..5593c3f479 >> --- /dev/null >> +++ >> b/meta/recipes-core/systemd/systemd/0001-network-neighbor-Always-add-neighbors-with-replace.patch >> @@ -0,0 +1,50 @@ >> +From faa0f758bc2f194d63bbed6e7f91df176f594a06 Mon Sep 17 00:00:00 2001 >> +From: "William A. Kennington III" <[email protected]> >> +Date: Tue, 27 Apr 2021 01:25:58 -0700 >> +Subject: [PATCH] network: neighbor: Always add neighbors with replace >> + >> +We were duplicating setting flags for the message and a combination of >> +NLM_F_APPEND and NLM_F_CREATE which does not make sense. We should have >> +been using NLM_F_REPLACE and NLM_F_CREATE since the kernel can >> +dynamically create neighbors prior to us adding an entry. Otherwise, we >> +can end up with cases where the message will time out after ~25s even >> +though the neighbor still gets added. This delays the rest of the setup >> +of the interface even though the error is ultimately ignored. >> + >> +Upstream-Status: Backport >> [https://github.com/systemd/systemd/commit/192a9d95ea3e058afd824d38a9cea16ad0a84a57] >> +--- >> + src/libsystemd/sd-netlink/rtnl-message.c | 2 +- >> + src/network/networkd-neighbor.c | 4 ---- >> + 2 files changed, 1 insertion(+), 5 deletions(-) >> + >> +diff --git a/src/libsystemd/sd-netlink/rtnl-message.c >> b/src/libsystemd/sd-netlink/rtnl-message.c >> +index 4cabbabba6..c9d0c9b1e7 100644 >> +--- a/src/libsystemd/sd-netlink/rtnl-message.c >> ++++ b/src/libsystemd/sd-netlink/rtnl-message.c >> +@@ -445,7 +445,7 @@ int sd_rtnl_message_new_neigh(sd_netlink *rtnl, >> sd_netlink_message **ret, uint16 >> + return r; >> + >> + if (nlmsg_type == RTM_NEWNEIGH) >> +- (*ret)->hdr->nlmsg_flags |= NLM_F_CREATE | NLM_F_APPEND; >> ++ (*ret)->hdr->nlmsg_flags |= NLM_F_CREATE | NLM_F_REPLACE; >> + >> + ndm = NLMSG_DATA((*ret)->hdr); >> + >> +diff --git a/src/network/networkd-neighbor.c >> b/src/network/networkd-neighbor.c >> +index c805d52cf3..adce055009 100644 >> +--- a/src/network/networkd-neighbor.c >> ++++ b/src/network/networkd-neighbor.c >> +@@ -259,10 +259,6 @@ static int neighbor_configure(Neighbor *neighbor, Link >> *link) { >> + if (r < 0) >> + return log_link_error_errno(link, r, "Could not set state: >> %m"); >> + >> +- r = sd_netlink_message_set_flags(req, NLM_F_REQUEST | NLM_F_ACK | >> NLM_F_CREATE | NLM_F_REPLACE); >> +- if (r < 0) >> +- return log_link_error_errno(link, r, "Could not set flags: >> %m"); >> +- >> + r = sd_netlink_message_append_data(req, NDA_LLADDR, >> &neighbor->lladdr, neighbor->lladdr_size); >> + if (r < 0) >> + return log_link_error_errno(link, r, "Could not append >> NDA_LLADDR attribute: %m"); >> +-- >> +2.31.1.498.g6c1eba8ee3d-goog >> + >> diff --git a/meta/recipes-core/systemd/systemd_247.6.bb >> b/meta/recipes-core/systemd/systemd_247.6.bb >> index ce6ac7ebaa..fb4acf2d37 100644 >> --- a/meta/recipes-core/systemd/systemd_247.6.bb >> +++ b/meta/recipes-core/systemd/systemd_247.6.bb >> @@ -27,6 +27,7 @@ SRC_URI += "file://touchscreen.rules \ >> >> file://0001-logind-Restore-chvt-as-non-root-user-without-polkit.patch \ >> >> file://0027-proc-dont-trigger-mount-error-with-invalid-options-o.patch \ >> >> file://0001-analyze-resolve-executable-path-if-it-is-relative.patch \ >> + >> file://0001-network-neighbor-Always-add-neighbors-with-replace.patch \ >> " >> >> # patches needed by musl >> -- >> 2.31.1.751.gd2f1c929bd-goog >> >> >> >>
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#152027): https://lists.openembedded.org/g/openembedded-core/message/152027 Mute This Topic: https://lists.openembedded.org/mt/82899808/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
