From 9d33d4bb759719903db44c290172794911e0ac47 Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Aug 15 2024 05:04:40 +0000 Subject: Import openvswitch2.17-2.17.0-165 from Fast DataPath --- diff --git a/SOURCES/openvswitch-2.17.0.patch b/SOURCES/openvswitch-2.17.0.patch index 3e91254..ba1c4cc 100644 --- a/SOURCES/openvswitch-2.17.0.patch +++ b/SOURCES/openvswitch-2.17.0.patch @@ -100961,7 +100961,7 @@ index 72cb954711..1c61535068 100644 } else { unixctl_command_reply_error(conn, error); diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c -index 620a451dec..80506ae2d9 100644 +index 620a451dec..755594ad1a 100644 --- a/lib/netdev-linux.c +++ b/lib/netdev-linux.c @@ -247,6 +247,14 @@ enum { @@ -101108,7 +101108,7 @@ index 620a451dec..80506ae2d9 100644 error = 0; } if (!error && netdev->tc) { -@@ -6295,7 +6325,14 @@ get_stats_via_netlink(const struct netdev *netdev_, struct netdev_stats *stats) +@@ -6295,7 +6325,15 @@ get_stats_via_netlink(const struct netdev *netdev_, struct netdev_stats *stats) if (ofpbuf_try_pull(reply, NLMSG_HDRLEN + sizeof(struct ifinfomsg))) { const struct nlattr *a = nl_attr_find(reply, 0, IFLA_STATS64); if (a && nl_attr_get_size(a) >= sizeof(struct rtnl_link_stats64)) { @@ -101117,14 +101117,15 @@ index 620a451dec..80506ae2d9 100644 + struct rtnl_link_stats64 aligned_lstats; + + if (!IS_PTR_ALIGNED(lstats)) { -+ memcpy(&aligned_lstats, lstats, sizeof aligned_lstats); ++ memcpy(&aligned_lstats, (void *) lstats, ++ sizeof aligned_lstats); + lstats = &aligned_lstats; + } + netdev_stats_from_rtnl_link_stats64(stats, lstats); error = 0; } else { a = nl_attr_find(reply, 0, IFLA_STATS); -@@ -6411,6 +6448,9 @@ netdev_linux_update_via_netlink(struct netdev_linux *netdev) +@@ -6411,6 +6449,9 @@ netdev_linux_update_via_netlink(struct netdev_linux *netdev) if (netdev_linux_netnsid_is_remote(netdev)) { nl_msg_put_u32(&request, IFLA_IF_NETNSID, netdev->netnsid); } @@ -105018,7 +105019,7 @@ index a929ddfd2d..89a0bcaf95 100644 long long int remaining = deadline - now; return MAX(0, MIN(INT_MAX, remaining)); diff --git a/lib/route-table.c b/lib/route-table.c -index ac82cf262f..6df7237e10 100644 +index ac82cf262f..e8f0623fa5 100644 --- a/lib/route-table.c +++ b/lib/route-table.c @@ -26,6 +26,7 @@ @@ -105038,16 +105039,29 @@ index ac82cf262f..6df7237e10 100644 struct route_data { /* Copied from struct rtmsg. */ unsigned char rtm_dst_len; -@@ -79,7 +82,7 @@ static struct nln_notifier *name_notifier = NULL; +@@ -79,9 +82,9 @@ static struct nln_notifier *name_notifier = NULL; static bool route_table_valid = false; -static int route_table_reset(void); +static void route_table_reset(void); static void route_table_handle_msg(const struct route_table_msg *); - static int route_table_parse(struct ofpbuf *, struct route_table_msg *); +-static int route_table_parse(struct ofpbuf *, struct route_table_msg *); ++static int route_table_parse(struct ofpbuf *, void *change); static void route_table_change(const struct route_table_msg *, void *); -@@ -152,26 +155,22 @@ route_table_wait(void) + static void route_map_clear(void); + +@@ -106,8 +109,7 @@ route_table_init(void) + ovs_assert(!route6_notifier); + + ovs_router_init(); +- nln = nln_create(NETLINK_ROUTE, (nln_parse_func *) route_table_parse, +- &rtmsg); ++ nln = nln_create(NETLINK_ROUTE, route_table_parse, &rtmsg); + + route_notifier = + nln_notifier_create(nln, RTNLGRP_IPV4_ROUTE, +@@ -152,26 +154,22 @@ route_table_wait(void) ovs_mutex_unlock(&route_table_mutex); } @@ -105083,7 +105097,7 @@ index ac82cf262f..6df7237e10 100644 nl_dump_start(&dump, NETLINK_ROUTE, &request); ofpbuf_uninit(&request); -@@ -181,12 +180,43 @@ route_table_reset(void) +@@ -181,19 +179,51 @@ route_table_reset(void) struct route_table_msg msg; if (route_table_parse(&reply, &msg)) { @@ -105128,6 +105142,15 @@ index ac82cf262f..6df7237e10 100644 } /* Return RTNLGRP_IPV4_ROUTE or RTNLGRP_IPV6_ROUTE on success, 0 on parse + * error. */ + static int +-route_table_parse(struct ofpbuf *buf, struct route_table_msg *change) ++route_table_parse(struct ofpbuf *buf, void *change_) + { ++ struct route_table_msg *change = change_; + bool parsed, ipv4 = false; + + static const struct nl_policy policy[] = { @@ -201,6 +231,7 @@ route_table_parse(struct ofpbuf *buf, struct route_table_msg *change) [RTA_OIF] = { .type = NL_A_U32, .optional = true }, [RTA_GATEWAY] = { .type = NL_A_U32, .optional = true }, diff --git a/SPECS/openvswitch2.17.spec b/SPECS/openvswitch2.17.spec index c39a341..d93cf81 100644 --- a/SPECS/openvswitch2.17.spec +++ b/SPECS/openvswitch2.17.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.17.0 -Release: 164%{?dist} +Release: 165%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -751,6 +751,13 @@ exit 0 %endif %changelog +* Wed Aug 14 2024 Open vSwitch CI - 2.17.0-165 +- Merging upstream branch-2.17 [RH git: b3a4017d60] + Commit list: + 05bdf2a252 netdev-linux: Fix unaligned access to rpl_rtnl_link_stats64. + dd91419654 route-table: Fix another UBsan warning about pointer type. + + * Thu Aug 08 2024 Open vSwitch CI - 2.17.0-164 - Merging upstream branch-2.17 [RH git: 5ee5dc9357] Commit list: