diff --git a/SOURCES/openvswitch-3.4.0.patch b/SOURCES/openvswitch-3.4.0.patch index d212de1..26878ab 100644 --- a/SOURCES/openvswitch-3.4.0.patch +++ b/SOURCES/openvswitch-3.4.0.patch @@ -457,12 +457,20 @@ index 7054cf559e..e7c8b96d49 100644 ``lpr``, ``news``, ``uucp``, ``clock``, ``ftp``, ``ntp``, ``audit``, ``alert``, ``clock2``, ``local0``, ``local1``, ``local2``, diff --git a/NEWS b/NEWS -index 944c95a8d7..d242de803e 100644 +index 944c95a8d7..3b22d550a1 100644 --- a/NEWS +++ b/NEWS -@@ -1,3 +1,12 @@ +@@ -1,3 +1,20 @@ +v3.4.2 - xx xxx xxxx +-------------------- ++ - The limit on the number of fields for address prefix tracking in flow ++ tables increased from 3 to 4. For example, it is now possible to ++ specify both IPv4 and IPv6 address fields at the same time: ++ $ ovs-vsctl set Bridge br0 flow_tables:123=@N -- \ ++ --id=@N create Flow_Table \ ++ name=table123 prefixes=nw_dst,nw_src,ipv6_dst,ipv6_src ++ This allows to significantly reduce amount of datapath flows generated ++ from mixed IPv4+IPv6 flow tables, if configured. + +v3.4.1 - 15 Nov 2024 +-------------------- @@ -1220,6 +1228,28 @@ index 37c509ac68..6c60c07e3f 100755 poller.block() unixctl_server.close() +diff --git a/lib/classifier.h b/lib/classifier.h +index f55a2cba99..c9cab970ec 100644 +--- a/lib/classifier.h ++++ b/lib/classifier.h +@@ -170,7 +170,7 @@ + * value of the "prefix" key is a comma separated list of field names. + * + * There is a maximum number of fields that can be enabled for any one +- * flow table. Currently this limit is 3. ++ * flow table. Currently this limit is 4. + * + * + * Partitioning (Lookup Time and Wildcard Optimization) +@@ -328,7 +328,7 @@ struct cls_trie { + + enum { + CLS_MAX_INDICES = 3, /* Maximum number of lookup indices per subtable. */ +- CLS_MAX_TRIES = 3 /* Maximum number of prefix trees per classifier. */ ++ CLS_MAX_TRIES = 4, /* Maximum number of prefix trees per classifier. */ + }; + + /* A flow classifier. */ diff --git a/lib/dpdk.c b/lib/dpdk.c index 940c43c070..b7516257c5 100644 --- a/lib/dpdk.c @@ -1618,6 +1648,21 @@ index beb0ab0d66..fe2c5bb61a 100644 @begin_dpdk@ allow openvswitch_t self:netlink_rdma_socket { setopt bind create }; @end_dpdk@ +diff --git a/tests/classifier.at b/tests/classifier.at +index 93a13f32b1..05e82ea968 100644 +--- a/tests/classifier.at ++++ b/tests/classifier.at +@@ -180,8 +180,8 @@ Datapath actions: drop + ]) + + AT_CHECK([ovs-vsctl set Flow_Table t0 prefixes=ipv6_label], [0]) +-AT_CHECK([ovs-vsctl set Flow_Table t0 prefixes=nw_dst,nw_src,tun_dst,tun_src], [1], [], +-[ovs-vsctl: nw_dst,nw_src,tun_dst,tun_src: 4 value(s) specified but the maximum number is 3 ++AT_CHECK([ovs-vsctl set Flow_Table t0 prefixes=nw_dst,nw_src,tun_dst,tun_src,ipv6_src], [1], [], ++[ovs-vsctl: nw_dst,nw_src,tun_dst,tun_src,ipv6_src: 5 value(s) specified but the maximum number is 4 + ]) + AT_CHECK([ovs-vsctl set Flow_Table t0 prefixes=nw_dst,nw_dst], [1], [], + [ovs-vsctl: nw_dst,nw_dst: set contains duplicate value diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at index 42fb66de68..18bd359bfe 100644 --- a/tests/ofproto-dpif.at @@ -2249,7 +2294,7 @@ index 1e155fecea..4ab384d89c 100644 +OVS_TRAFFIC_VSWITCHD_STOP() +AT_CLEANUP diff --git a/tests/system-traffic.at b/tests/system-traffic.at -index 202ff04922..dce45a8789 100644 +index 202ff04922..d936afb726 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at @@ -253,6 +253,10 @@ priority=0,actions=NORMAL @@ -2263,19 +2308,6 @@ index 202ff04922..dce45a8789 100644 NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -W 2 fc00::3 | FORMAT_PING], [0], [dnl 3 packets transmitted, 3 received, 0% packet loss, time 0ms ]) -@@ -6991,6 +6995,12 @@ dnl Checks the implementation of conntrack with FTP ALGs in combination with - dnl NAT, using the provided flow table. - m4_define([CHECK_FTP_NAT], - [AT_SETUP([conntrack - FTP $1]) -+ m4_if(m4_index([$1], [orig tuple]), -1, [], [ -+ dnl XXX: 6.8.0-1014-azure #16~22.04.1-Ubuntu kernel in GitHub Actions -+ dnl contains a known conntrack bug, but doesn't have a fix for it: -+ dnl a23ac973f67f ("openvswitch: get related ct labels from its master -+ dnl if it is not confirmed") -+ OVS_CHECK_GITHUB_ACTION()]) - AT_SKIP_IF([test $HAVE_FTP = no]) - AT_SKIP_IF([test $HAVE_LFTP = no]) - CHECK_CONNTRACK() diff --git a/tests/test-ovsdb.c b/tests/test-ovsdb.c index 41c1525f45..710341b655 100644 --- a/tests/test-ovsdb.c @@ -2354,6 +2386,41 @@ index 28479a5650..80c9c98bdb 100755 } +diff --git a/vswitchd/vswitch.ovsschema b/vswitchd/vswitch.ovsschema +index 68689fe2a3..c658291c75 100644 +--- a/vswitchd/vswitch.ovsschema ++++ b/vswitchd/vswitch.ovsschema +@@ -1,6 +1,6 @@ + {"name": "Open_vSwitch", +- "version": "8.7.0", +- "cksum": "3751637058 27869", ++ "version": "8.8.0", ++ "cksum": "2823623553 27869", + "tables": { + "Open_vSwitch": { + "columns": { +@@ -385,7 +385,7 @@ + "groups": { + "type": {"key": "string", "min": 0, "max": "unlimited"}}, + "prefixes": { +- "type": {"key": "string", "min": 0, "max": 3}}, ++ "type": {"key": "string", "min": 0, "max": 4}}, + "external_ids": { + "type": {"key": "string", "value": "string", + "min": 0, "max": "unlimited"}}}}, +diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml +index 36cb4e4951..89f844bf8d 100644 +--- a/vswitchd/vswitch.xml ++++ b/vswitchd/vswitch.xml +@@ -4897,7 +4897,7 @@ ovs-vsctl add-port br0 p0 -- set Interface p0 type=patch options:peer=p1 \ + +

+ There is a maximum number of fields that can be enabled for any +- one flow table. Currently this limit is 3. ++ one flow table. Currently this limit is 4. +

+ + diff --git a/dpdk/.github/workflows/build.yml b/dpdk/.github/workflows/build.yml index 272a6ffc7f..6b35c56da0 100644 --- a/dpdk/.github/workflows/build.yml diff --git a/SPECS/openvswitch3.4.spec b/SPECS/openvswitch3.4.spec index d1ae96f..694dd6f 100644 --- a/SPECS/openvswitch3.4.spec +++ b/SPECS/openvswitch3.4.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 3.4.0 -Release: 18%{?dist} +Release: 19%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -770,6 +770,13 @@ exit 0 %endif %changelog +* Wed Nov 27 2024 Open vSwitch CI - 3.4.0-19 +- Merging upstream branch-3.4 [RH git: f70b3859b4] + Commit list: + 87efb3c94b classifier: Increase the maximum number of prefixes (tries). + 5338f3ebeb Revert "github: Skip FTP SNAT orig tuple tests due to broken Ubuntu kernel." + + * Mon Nov 18 2024 Open vSwitch CI - 3.4.0-18 - Merging dpdk subtree [RH git: 8d84b5400c] Commit list: