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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to