diff --git a/SOURCES/ovn23.09.patch b/SOURCES/ovn23.09.patch index a3b70e1..13513a8 100644 --- a/SOURCES/ovn23.09.patch +++ b/SOURCES/ovn23.09.patch @@ -49,6 +49,105 @@ index 65c8761f4..351523fd1 100644 zhaojingjing zhao.jingjing1@zte.com.cn zhongbaisong zhongbaisong@huawei.com zhaozhanxu zhaozhanxu@163.com +diff --git a/Documentation/automake.mk b/Documentation/automake.mk +index 7fcd186ca..6628bd3e0 100644 +--- a/Documentation/automake.mk ++++ b/Documentation/automake.mk +@@ -59,6 +59,7 @@ DOC_SOURCE = \ + Documentation/internals/security.rst \ + Documentation/internals/contributing/index.rst \ + Documentation/internals/contributing/backporting-patches.rst \ ++ Documentation/internals/contributing/inclusive-language.rst \ + Documentation/internals/contributing/coding-style.rst \ + Documentation/internals/contributing/documentation-style.rst \ + Documentation/internals/contributing/libopenvswitch-abi.rst \ +diff --git a/Documentation/index.rst b/Documentation/index.rst +index 730595c05..6dabd8a28 100644 +--- a/Documentation/index.rst ++++ b/Documentation/index.rst +@@ -82,6 +82,7 @@ Learn more about the Open Virtual Network (OVN) project and about how you can co + + - **Contributing:** :doc:`internals/contributing/submitting-patches` | + :doc:`internals/contributing/backporting-patches` | ++ :doc:`internals/contributing/inclusive-language` | + :doc:`internals/contributing/coding-style` + + - **Maintaining:** :doc:`internals/maintainers` | +diff --git a/Documentation/internals/contributing/inclusive-language.rst b/Documentation/internals/contributing/inclusive-language.rst +new file mode 100644 +index 000000000..65e9c4fbd +--- /dev/null ++++ b/Documentation/internals/contributing/inclusive-language.rst +@@ -0,0 +1,57 @@ ++.. ++ Licensed under the Apache License, Version 2.0 (the "License"); you may ++ not use this file except in compliance with the License. You may obtain ++ a copy of the License at ++ ++ http://www.apache.org/licenses/LICENSE-2.0 ++ ++ Unless required by applicable law or agreed to in writing, software ++ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT ++ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the ++ License for the specific language governing permissions and limitations ++ under the License. ++ ++ Convention for heading levels in OVN documentation: ++ ++ ======= Heading 0 (reserved for the title in a document) ++ ------- Heading 1 ++ ~~~~~~~ Heading 2 ++ +++++++ Heading 3 ++ ''''''' Heading 4 ++ ++ Avoid deeper levels because they do not render well. ++ ++================== ++Inclusive Language ++================== ++ ++In order to help facilitate an inclusive environment in the OVN ++community we recognise the role of language in framing our ++communication with each other. It is important that terms that ++may exclude people through racial, cultural or other bias, are avoided ++as they may make people feel excluded. ++ ++We recognise that this is subjective, and to some extent is a journey. ++But we also recognise that we cannot begin that journey without taking ++positive action. To this end OVN is adopting the practice of an ++inclusive word list, which helps to guide the use of language within ++the project. ++ ++.. _word list: ++ ++Word List ++--------- ++ ++The intent of this document is to formally document the acceptance of a ++inclusive word list by OVN. Accordingly, this document specifies ++use of the use the `Inclusive Naming Word List ++`__ v1.0 (the word list) for ++OVN. ++ ++The adoption of the word list intended that this act as a guide for ++developers creating patches to the OVN repository, including both ++source code and documentation. And to aid maintainers in their role of ++shepherding changes into the repository. ++ ++Further steps to align usage of language in OVN, including clarification ++of application of the word list, to new and existing work, may follow. +diff --git a/Documentation/internals/contributing/index.rst b/Documentation/internals/contributing/index.rst +index 77b52964b..4f09ad473 100644 +--- a/Documentation/internals/contributing/index.rst ++++ b/Documentation/internals/contributing/index.rst +@@ -31,6 +31,7 @@ The below guides provide information on contributing to OVN itself. + :maxdepth: 2 + + submitting-patches ++ inclusive-language + backporting-patches + coding-style + documentation-style diff --git a/NEWS b/NEWS index 5c80fa482..9265e0836 100644 --- a/NEWS @@ -77,6 +176,56 @@ index c71ade236..055d339e3 100644 AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_HEADERS([config.h]) +diff --git a/controller/if-status.c b/controller/if-status.c +index 6e8aa1f7e..2d6d06d9b 100644 +--- a/controller/if-status.c ++++ b/controller/if-status.c +@@ -219,7 +219,8 @@ ovs_iface_create(struct if_status_mgr *, const char *iface_id, + static void add_to_ovn_uninstall_hash(struct if_status_mgr *, const char *, + const struct uuid *); + static void ovs_iface_destroy(struct if_status_mgr *, struct ovs_iface *); +-static void ovn_uninstall_hash_destroy(struct if_status_mgr *mgr, char *name); ++static void ovn_uninstall_hash_destroy(struct if_status_mgr *mgr, ++ struct shash_node *node); + static void ovs_iface_set_state(struct if_status_mgr *, struct ovs_iface *, + enum if_state); + +@@ -256,7 +257,7 @@ if_status_mgr_clear(struct if_status_mgr *mgr) + ovs_assert(shash_is_empty(&mgr->ifaces)); + + SHASH_FOR_EACH_SAFE (node, &mgr->ovn_uninstall_hash) { +- ovn_uninstall_hash_destroy(mgr, node->data); ++ ovn_uninstall_hash_destroy(mgr, node); + } + ovs_assert(shash_is_empty(&mgr->ovn_uninstall_hash)); + +@@ -789,20 +790,13 @@ ovs_iface_destroy(struct if_status_mgr *mgr, struct ovs_iface *iface) + } + + static void +-ovn_uninstall_hash_destroy(struct if_status_mgr *mgr, char *name) ++ovn_uninstall_hash_destroy(struct if_status_mgr *mgr, struct shash_node *node) + { +- struct shash_node *node = shash_find(&mgr->ovn_uninstall_hash, name); +- char *node_name = NULL; +- if (node) { +- free(node->data); +- VLOG_DBG("Interface name %s destroy", name); +- node_name = shash_steal(&mgr->ovn_uninstall_hash, node); +- ovn_uninstall_hash_account_mem(name, true); +- free(node_name); +- } else { +- static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 1); +- VLOG_WARN_RL(&rl, "Interface name %s not found", name); +- } ++ free(node->data); ++ VLOG_DBG("Interface name %s destroy", node->name); ++ char *node_name = shash_steal(&mgr->ovn_uninstall_hash, node); ++ ovn_uninstall_hash_account_mem(node_name, true); ++ free(node_name); + } + + static void diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c index e8e7ac6bd..66b656044 100644 --- a/controller/ovn-controller.c @@ -216,6 +365,23 @@ index e8e7ac6bd..66b656044 100644 } if (br_int) { +diff --git a/controller/physical.c b/controller/physical.c +index c93fe9aa6..54bae81d1 100644 +--- a/controller/physical.c ++++ b/controller/physical.c +@@ -1212,6 +1212,12 @@ reply_imcp_error_if_pkt_too_big(struct ovn_desired_flow_table *flow_table, + ofpact_put_set_field( + &inner_ofpacts, mf_from_id(MFF_LOG_FLAGS), &value, &mask); + ++ /* inport <-> outport */ ++ put_stack(MFF_LOG_INPORT, ofpact_put_STACK_PUSH(&inner_ofpacts)); ++ put_stack(MFF_LOG_OUTPORT, ofpact_put_STACK_PUSH(&inner_ofpacts)); ++ put_stack(MFF_LOG_INPORT, ofpact_put_STACK_POP(&inner_ofpacts)); ++ put_stack(MFF_LOG_OUTPORT, ofpact_put_STACK_POP(&inner_ofpacts)); ++ + /* eth.src <-> eth.dst */ + put_stack(MFF_ETH_DST, ofpact_put_STACK_PUSH(&inner_ofpacts)); + put_stack(MFF_ETH_SRC, ofpact_put_STACK_PUSH(&inner_ofpacts)); diff --git a/controller/pinctrl.c b/controller/pinctrl.c index 98821d275..9e80556ef 100644 --- a/controller/pinctrl.c @@ -441,7 +607,7 @@ index 68892dba5..d84528ef5 100644 expr_symtab_add_predicate(symtab, "tcp", "ip.proto == 6"); expr_symtab_add_field(symtab, "tcp.src", MFF_TCP_SRC, "tcp", false); diff --git a/northd/northd.c b/northd/northd.c -index 32240b856..d3ff7629d 100644 +index 32240b856..6a4f8f222 100644 --- a/northd/northd.c +++ b/northd/northd.c @@ -119,6 +119,7 @@ static bool default_acl_drop; @@ -651,7 +817,19 @@ index 32240b856..d3ff7629d 100644 ds_put_cstr(actions, "clone { " "outport = \""MC_MROUTER_FLOOD "\"; " -@@ -17618,7 +17614,8 @@ build_static_mac_binding_table( +@@ -10779,8 +10775,9 @@ build_bfd_table(struct ovsdb_idl_txn *ovnsb_txn, + } + build_bfd_update_sb_conf(nb_bt, bfd_e->sb_bt); + if (op && op->sb && op->sb->chassis && +- strcmp(op->sb->chassis->name, sb_bt->chassis_name)) { +- sbrec_bfd_set_chassis_name(sb_bt, op->sb->chassis->name); ++ strcmp(op->sb->chassis->name, bfd_e->sb_bt->chassis_name)) { ++ sbrec_bfd_set_chassis_name(bfd_e->sb_bt, ++ op->sb->chassis->name); + } + + hmap_remove(&sb_only, &bfd_e->hmap_node); +@@ -17618,7 +17615,8 @@ build_static_mac_binding_table( struct hmap *lr_ports) { /* Cleanup SB Static_MAC_Binding entries which do not have corresponding @@ -661,7 +839,7 @@ index 32240b856..d3ff7629d 100644 const struct nbrec_static_mac_binding *nb_smb; const struct sbrec_static_mac_binding *sb_smb; SBREC_STATIC_MAC_BINDING_TABLE_FOR_EACH_SAFE (sb_smb, -@@ -17628,6 +17625,12 @@ build_static_mac_binding_table( +@@ -17628,6 +17626,12 @@ build_static_mac_binding_table( sb_smb->ip); if (!nb_smb) { sbrec_static_mac_binding_delete(sb_smb); @@ -833,7 +1011,7 @@ index 4bebb2673..22c881d6a 100644 AT_SETUP([LR neighbor lookup and learning flows]) ovn_start diff --git a/tests/ovn.at b/tests/ovn.at -index ffd9f653e..a5b8f91b8 100644 +index ffd9f653e..d44a36be9 100644 --- a/tests/ovn.at +++ b/tests/ovn.at @@ -1304,6 +1304,9 @@ ct_commit { ct_label=0x181716151413121110090807060504030201; }; @@ -904,7 +1082,60 @@ index ffd9f653e..a5b8f91b8 100644 ICMPv6MLQuery2() ") as hv1 ovs-appctl netdev-dummy/receive vif${inport} $packet -@@ -26674,20 +26688,10 @@ wait_row_count IGMP_Group 2 address=239.0.1.68 +@@ -15451,14 +15465,17 @@ m4_define([MULTICHASSIS_PATH_MTU_DISCOVERY_TEST], + second_mac=00:00:00:00:00:02 + multi1_mac=00:00:00:00:00:f0 + multi2_mac=00:00:00:00:00:f1 ++ external_mac=00:00:00:00:ee:ff + first_ip=10.0.0.1 + second_ip=10.0.0.2 + multi1_ip=10.0.0.10 + multi2_ip=10.0.0.20 ++ external_ip=10.0.0.30 + first_ip6=abcd::1 + second_ip6=abcd::2 + multi1_ip6=abcd::f0 + multi2_ip6=abcd::f1 ++ external_ip6=abcd::eeff + + check ovn-nbctl ls-add ls0 + check ovn-nbctl lsp-add ls0 first +@@ -15577,6 +15594,24 @@ m4_define([MULTICHASSIS_PATH_MTU_DISCOVERY_TEST], + + reset_env + ++ AS_BOX([Multi with "unknown" to external doesn't produce wrong FDB]) ++ len=3000 ++ check ovn-nbctl --wait=hv lsp-set-addresses multi1 unknown ++ ++ packet=$(send_ip_packet multi1 1 $multi1_mac $external_mac $multi1_ip $external_ip $(payload $len) 1 ${expected_ip_mtu}) ++ echo $packet >> hv1/multi1.expected ++ ++ packet=$(send_ip6_packet multi1 1 $multi1_mac $external_mac $multi1_ip6 $external_ip6 $(payload $len) 1 ${expected_ip_mtu}) ++ echo $packet >> hv1/multi1.expected ++ ++ check_pkts ++ reset_env ++ ++ check_row_count fdb 0 mac="$external_mac" ++ ovn-sbctl --all destroy fdb ++ ++ check ovn-nbctl --wait=hv lsp-set-addresses multi1 "${multi1_mac} ${multi1_ip} ${multi1_ip6}" ++ + AS_BOX([Packets of proper size are delivered from multichassis to regular ports]) + + len=1000 +@@ -15676,9 +15711,6 @@ m4_define([MULTICHASSIS_PATH_MTU_DISCOVERY_TEST], + packet=$(send_ip6_packet multi1 1 $multi1_mac $multi2_mac $multi1_ip6 $multi2_ip6 $(payload $len) 1) + echo $packet >> hv1/multi1.expected + +- check_pkts +- reset_env +- + AS_BOX([MTU updates are honored in ICMP Path MTU calculation]) + + set_mtu() { +@@ -26674,20 +26706,10 @@ wait_row_count IGMP_Group 2 address=239.0.1.68 wait_row_count IGMP_Group 2 address='"ff0a:dead:beef::1"' check ovn-nbctl --wait=hv sync @@ -925,7 +1156,7 @@ index ffd9f653e..a5b8f91b8 100644 # Send an IP multicast packet from LSP2, it should be forwarded # to lsp1 and lsp3. -@@ -27428,7 +27432,14 @@ check ovs-vsctl add-port br-int vif3 -- set Interface vif3 external-ids:iface-id +@@ -27428,7 +27450,14 @@ check ovs-vsctl add-port br-int vif3 -- set Interface vif3 external-ids:iface-id # Add a forwarding group on ls2 with lsp21 and lsp22 as child ports # virtual IP - 172.16.1.11, virtual MAC - 00:11:de:ad:be:ef check ovn-nbctl --wait=hv fwd-group-add fwd_grp1 ls2 172.16.1.11 00:11:de:ad:be:ef lsp21 lsp22 @@ -940,7 +1171,7 @@ index ffd9f653e..a5b8f91b8 100644 # Check logical flow AT_CAPTURE_FILE([sbflows]) ovn-sbctl dump-flows > sbflows -@@ -32805,7 +32816,7 @@ AT_CHECK([ovn-sbctl dump-flows | +@@ -32805,7 +32834,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep ls_in_arp_rsp | grep "${arp_proxy_ls1[[1]]}" | sed 's/table=../table=??/'], [0], [dnl @@ -949,7 +1180,7 @@ index ffd9f653e..a5b8f91b8 100644 arp.tpa == {169.254.238.0/24,169.254.239.2/32}), dnl action=(eth.dst = eth.src; eth.src = 00:00:00:01:02:f1; arp.op = 2; dnl /* ARP reply */ arp.tha = arp.sha; arp.sha = 00:00:00:01:02:f1; dnl -@@ -32818,7 +32829,7 @@ AT_CHECK([ovn-sbctl dump-flows | +@@ -32818,7 +32847,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep "${arp_proxy_ls1[[3]]}" | sed 's/table=../table=??/'], [0], [dnl table=??(ls_in_arp_rsp ), priority=30 , dnl @@ -958,7 +1189,7 @@ index ffd9f653e..a5b8f91b8 100644 fd7b:6b4d:7b25:d22f::1/128, ff02::1:ff00:1/128 } && dnl nd.target == { fd7b:6b4d:7b25:d22d::/64, fd7b:6b4d:7b25:d22f::1/128 }), dnl action=(nd_na_router { eth.src = 00:00:00:01:02:f1; ip6.src = nd.target; dnl -@@ -32832,7 +32843,7 @@ AT_CHECK([ovn-sbctl dump-flows | +@@ -32832,7 +32861,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep "${arp_proxy_ls2[[2]]}" | sed 's/table=../table=??/'], [0], [dnl table=??(ls_in_arp_rsp ), priority=30 , dnl @@ -967,7 +1198,7 @@ index ffd9f653e..a5b8f91b8 100644 action=(eth.dst = eth.src; eth.src = 00:00:00:02:02:f1; arp.op = 2; dnl /* ARP reply */ arp.tha = arp.sha; arp.sha = 00:00:00:02:02:f1; dnl arp.tpa <-> arp.spa; outport = inport; flags.loopback = 1; output;) -@@ -32844,7 +32855,7 @@ AT_CHECK([ovn-sbctl dump-flows | +@@ -32844,7 +32873,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep "${arp_proxy_ls2[[4]]}" | sed 's/table=../table=??/'], [0], [dnl table=??(ls_in_arp_rsp ), priority=30 , dnl @@ -976,7 +1207,7 @@ index ffd9f653e..a5b8f91b8 100644 fd7b:6b4d:7b25:d22c::1/128, ff02::1:ff00:1/128 } && dnl nd.target == { fd7b:6b4d:7b25:d22b::/64, fd7b:6b4d:7b25:d22c::1/128 }), dnl action=(nd_na_router { eth.src = 00:00:00:02:02:f1; ip6.src = nd.target; dnl -@@ -35202,7 +35213,10 @@ check_default_flows() { +@@ -35202,7 +35231,10 @@ check_default_flows() { # Check that every drop flow gets sampled. check_sample_drops() { @@ -988,7 +1219,7 @@ index ffd9f653e..a5b8f91b8 100644 check ovn-nbctl -- remove NB_Global . options debug_drop_collector_set \ -- remove NB_Global . options debug_drop_domain_id check ovn-nbctl --wait=hv sync -@@ -35212,14 +35226,52 @@ check_sample_drops() { +@@ -35212,14 +35244,52 @@ check_sample_drops() { # Take match part of flows that contain "drop". drop_matches="$(grep 'drop' oflows_nosample | grep -oP 'table=\d*, priority=.* ')" @@ -1042,7 +1273,7 @@ index ffd9f653e..a5b8f91b8 100644 ovs-ofctl dump-flows --no-stats br-int > oflows_sample AT_CAPTURE_FILE([oflows_sample]) -@@ -35227,6 +35279,8 @@ check_sample_drops() { +@@ -35227,6 +35297,8 @@ check_sample_drops() { save_IFS=$IFS IFS=$'\n' for flow in $drop_matches; do @@ -1051,7 +1282,7 @@ index ffd9f653e..a5b8f91b8 100644 AT_CHECK([grep "${flow}actions=.*sample.*" oflows_sample], [0], [ignore], [ignore], [echo "Flow $flow has a drop and did not get sampled"]) done IFS=$save_IFS -@@ -35239,9 +35293,9 @@ check_drops() { +@@ -35239,9 +35311,9 @@ check_drops() { check_default_flows as hv1 @@ -1063,7 +1294,7 @@ index ffd9f653e..a5b8f91b8 100644 } # Logical network: -@@ -35309,7 +35363,8 @@ ovs-vsctl -- add-port br-int hv2-vif1 -- \ +@@ -35309,7 +35381,8 @@ ovs-vsctl -- add-port br-int hv2-vif1 -- \ wait_for_ports_up check ovn-nbctl --wait=hv sync @@ -1073,7 +1304,7 @@ index ffd9f653e..a5b8f91b8 100644 # Add stateless ACL check ovn-nbctl --wait=sb \ -@@ -35317,7 +35372,7 @@ check ovn-nbctl --wait=sb \ +@@ -35317,7 +35390,7 @@ check ovn-nbctl --wait=sb \ check ovn-nbctl --wait=sb \ -- acl-add ls2 from-lport 100 'ip4' allow-stateless @@ -1082,7 +1313,7 @@ index ffd9f653e..a5b8f91b8 100644 check ovn-nbctl --wait=sb acl-del ls1 check ovn-nbctl --wait=sb acl-del ls2 -@@ -35328,7 +35383,7 @@ check ovn-nbctl --wait=sb \ +@@ -35328,7 +35401,7 @@ check ovn-nbctl --wait=sb \ check ovn-nbctl --wait=sb \ -- acl-add ls2 from-lport 100 "udp" allow-related @@ -1091,7 +1322,7 @@ index ffd9f653e..a5b8f91b8 100644 check ovn-nbctl --wait=sb acl-del ls1 check ovn-nbctl --wait=sb acl-del ls2 -@@ -37663,9 +37718,9 @@ AT_CHECK([ovn-sbctl --db=ssl:127.0.0.1:$TCP_PORT \ +@@ -37663,9 +37736,9 @@ AT_CHECK([ovn-sbctl --db=ssl:127.0.0.1:$TCP_PORT \ --ca-cert=$PKIDIR/testpki-cacert.pem \ --ssl-ciphers='HIGH:!aNULL:!MD5:@SECLEVEL=1' \ --ssl-protocols='TLSv1,TLSv1.1,TLSv1.2' \ @@ -1104,7 +1335,7 @@ index ffd9f653e..a5b8f91b8 100644 OVS_APP_EXIT_AND_WAIT([ovsdb-server]) AT_CLEANUP -@@ -37840,3 +37895,170 @@ OVS_WAIT_FOR_OUTPUT([as hv1 ovs-ofctl dump-flows br-int table=0 |grep priority=1 +@@ -37840,3 +37913,171 @@ OVS_WAIT_FOR_OUTPUT([as hv1 ovs-ofctl dump-flows br-int table=0 |grep priority=1 OVN_CLEANUP([hv1]) AT_CLEANUP ]) @@ -1114,6 +1345,7 @@ index ffd9f653e..a5b8f91b8 100644 +dnl simple switching. +OVN_FOR_EACH_NORTHD([ +AT_SETUP([IPv6 switching - megaflow check for IPv6 src/dst matches]) ++AT_SKIP_IF([test $HAVE_SCAPY = no]) +ovn_start + +check ovn-nbctl ls-add sw0 @@ -1276,7 +1508,7 @@ index ffd9f653e..a5b8f91b8 100644 +AT_CLEANUP +]) diff --git a/tests/system-ovn.at b/tests/system-ovn.at -index 463075ac0..45e9ac94f 100644 +index 463075ac0..28474ed66 100644 --- a/tests/system-ovn.at +++ b/tests/system-ovn.at @@ -10628,7 +10628,7 @@ check ovn-nbctl ls-add bar @@ -1329,6 +1561,43 @@ index 463075ac0..45e9ac94f 100644 OVS_APP_EXIT_AND_WAIT([ovn-controller]) +@@ -11183,7 +11203,25 @@ check_ovn_installed + check_ports_up + check_ports_bound + +-OVS_APP_EXIT_AND_WAIT([ovn-controller]) ++AS_BOX(["Leave some ovn-installed while closing ovn-controller"]) ++# Block IDL from ovn-controller to OVSDB ++stop_ovsdb_controller_updates $TCP_PORT ++remove_iface_id vif2 ++ensure_controller_run ++ ++# OVSDB should now be seen as read-only by ovn-controller ++remove_iface_id vif1 ++check ovn-nbctl --wait=hv sync ++ ++# Stop ovsdb before ovn-controller to ensure it's not updated ++as ++OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d ++/connection dropped.*/d"]) ++ ++# Don't use OVS_APP_EXIT... to use --restart to avoid cleaning up the databases. ++TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid) ++check ovs-appctl -t ovn-controller exit --restart ++OVS_WAIT_WHILE([kill -0 $TMPPID 2>/dev/null]) + + as ovn-sb + OVS_APP_EXIT_AND_WAIT([ovsdb-server]) +@@ -11194,9 +11232,6 @@ OVS_APP_EXIT_AND_WAIT([ovsdb-server]) + as northd + OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) + +-as +-OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d +-/connection dropped.*/d"]) + AT_CLEANUP + ]) + diff --git a/utilities/automake.mk b/utilities/automake.mk index 6a2b96e66..b7d2ebeef 100644 --- a/utilities/automake.mk diff --git a/SPECS/ovn23.09.spec b/SPECS/ovn23.09.spec index 2e7dec9..8e3164d 100644 --- a/SPECS/ovn23.09.spec +++ b/SPECS/ovn23.09.spec @@ -51,7 +51,7 @@ Summary: Open Virtual Network support Group: System Environment/Daemons URL: http://www.ovn.org/ Version: 23.09.4 -Release: 28%{?commit0:.%{date}git%{shortcommit0}}%{?dist} +Release: 33%{?commit0:.%{date}git%{shortcommit0}}%{?dist} Provides: openvswitch%{pkgver}-ovn-common = %{?epoch:%{epoch}:}%{version}-%{release} Obsoletes: openvswitch%{pkgver}-ovn-common < 2.11.0-1 @@ -127,7 +127,7 @@ BuildRequires: tcpdump BuildRequires: libcap-ng libcap-ng-devel %endif -%if 0%{?rhel} == 9 +%if 0%{?rhel} >= 9 BuildRequires: python3-scapy %endif @@ -532,8 +532,28 @@ fi %{_unitdir}/ovn-controller-vtep.service %changelog +* Tue Sep 24 2024 Ales Musil - 23.09.4-33 +- northd: Fix NULL pointer deref within build_bfd_table. +[Upstream: 8e97c06742cebac4c9bec1f95bda627aa468a2cb] + +* Fri Sep 20 2024 Ales Musil - 23.09.4-32 +- physical: Prevent wrong FDB to be learned with multichassis port. (#FDP-620) +[Upstream: db7c577eca3ac0a030f4a9d626935cc2fc68da07] + +* Thu Sep 19 2024 Xavier Simonart - 23.09.4-31 +- ovn-controller: Fix potential assert when exiting. +[Upstream: fa8e36f5a519b76642df1843aafb1c0852c2211b] + +* Tue Aug 27 2024 Mark Michelson - 23.09.4-30 +- Documentation: Add inclusive-language documentation. +[Upstream: ec2ade138a11f9438dcf8b2e47a98045b41b5585] + +* Mon Aug 19 2024 Numan Siddique - 23.09.4-29 +- tests: Skip "IPv6 switching - megaflow check" if scapy is not installed. +[Upstream: caa6dc96d8addd7dfb89ff0def1f7c04e69beb50] + * Fri Aug 16 2024 Numan Siddique - 23.09.4-28 -- Reply only for the multicast ND solicitations. +- Reply only for the multicast ND solicitations. (#FDP-728) [Upstream: 6b6bfd53dd10fff1925c7f5b3658b689794c8ab9] * Fri Aug 16 2024 Mark Michelson - 23.09.4-27 @@ -553,7 +573,7 @@ fi [Upstream: e43b9140e5f8f02cf86e06d69ed9c0df5d01989a] * Mon Aug 12 2024 Rosemarie O'Riorden - 23.09.4-23 -- northd: Clean up SB MAC bindings for deleted ports. +- northd: Clean up SB MAC bindings for deleted ports. (#FDP-723) [Upstream: 4a98b76fe4dec6029002b7c67c91a8120583006d] * Mon Aug 12 2024 Ales Musil - 23.09.4-22 @@ -561,11 +581,11 @@ fi [Upstream: 563f0b7d2a70f903f43679b18b025e10572c3332] * Fri Aug 09 2024 Dumitru Ceara - 23.09.4-21 -- ci: ovn-kubernetes: Move to stable release-1.0 branch. +- ci: ovn-kubernetes: Move to stable release-1.0 branch. (#FDP-61) [Upstream: 8e4f3ff204db3a577306f0455e2de99662d284b0] * Fri Aug 09 2024 Ilya Maximets - 23.09.4-20 -- logical-fields: Add missing multicast matches for MLD and IGMP. +- logical-fields: Add missing multicast matches for MLD and IGMP. (#FDP-728) [Upstream: ea584fd60936997cd15f2d9d3340d62c1f3b5ace] * Mon Jul 22 2024 zhangqiang45 - 23.09.4-19 @@ -585,7 +605,7 @@ fi [Upstream: 83c2238cbf41f6600fe024ce1df58c9800299bd6] * Tue Jun 18 2024 Dumitru Ceara - 23.09.4-15 -- Revert "northd: Don't skip transit switch LSP when creating mcast groups." +- Revert "northd: Don't skip transit switch LSP when creating mcast groups." (#FDP-656) [Upstream: 5f0809be565713d3634a6c663e122c0bfb5dff92] * Tue Jun 18 2024 Dumitru Ceara - 23.09.4-14 @@ -609,7 +629,7 @@ fi [Upstream: 24e0e2dc3bcac752480c958afd0d23420be3b5d4] * Fri Jun 07 2024 Lorenzo Bianconi - 23.09.4-9 -- northd: Skip arp-proxy flows if the lsp is a router port. +- northd: Skip arp-proxy flows if the lsp is a router port. (#FDP-96) [Upstream: cf6cd0f579495906ac189b4b054eb5d5276eda20] * Wed Jun 05 2024 Ales Musil - 23.09.4-8 @@ -621,7 +641,7 @@ fi [Upstream: fb8b58913f5275563d8f80ea3658d8c5dfe55d03] * Wed May 15 2024 Ales Musil - 23.09.4-6 -- controller: Avoid use after free in LB I-P. +- controller: Avoid use after free in LB I-P. (#FDP-610) [Upstream: a8b1a53244ef885f840be848ae99bf4e406a96ff] * Tue May 14 2024 Xavier Simonart - 23.09.4-5