Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase on master 23-Jul-2024 #129

Draft
wants to merge 834 commits into
base: ipdk-latest
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
834 commits
Select commit Hold shift + click to select a range
5df46a4
dpif-netdev: Increase MAX_RECIRC_DEPTH to 8.
JM1 Jan 26, 2024
3e666ba
rstp: Fix deadlock with patch ports.
igsilya Feb 15, 2024
cb0cbff
netdev-linux: Favour inner packet for multi-encapsulated TSO.
mkp-rh Feb 15, 2024
a2d4ad6
netdev-linux: Only repair IP checksum in IPv4.
mkp-rh Feb 15, 2024
f81d782
netdev-native-tnl: Mark all vxlan/geneve packets as tunneled.
mkp-rh Feb 15, 2024
619d4e6
system-traffic.at: Add tests with UDP tunneling of UDP traffic.
mkp-rh Feb 15, 2024
9aeda62
Set release date for 3.3.0.
igsilya Feb 16, 2024
5f2af0b
utilities: Add TASK_STOPPED accounting to the kernel_delay.py script.
chaudron Jan 29, 2024
99413ec
conntrack: Handle random selection for port ranges.
vlrpl Feb 16, 2024
afdc117
conntrack: Handle persistent selection for IP addresses.
vlrpl Feb 16, 2024
4615998
ovs-thread: Log pthread failures.
igsilya Feb 15, 2024
f9e42c6
tests: Move the non-local port as tunnel endpoint test.
igsilya Feb 20, 2024
7992a26
netdev-dummy: Add local route entries for IP addresses.
booxter Feb 20, 2024
166ee41
ofproto-dpif-xlate: Fix ignoring IPv6 local_ip for native tunnels.
igsilya Feb 20, 2024
f0d1bec
dpif-netdev: Do not create handler threads.
chaudron Feb 20, 2024
4c32b6d
dp-packet: Don't offload inner csum if outer isn't supported.
mkp-rh Feb 26, 2024
5639aa7
Documentation: Extend copyright to 2024.
Mar 1, 2024
786a89a
Documentation: Correct spelling errors.
Mar 1, 2024
3c52cd1
Documentation: Anuket project updates.
Mar 1, 2024
2d7a2bd
Documentation: Update Pacemaker link.
Mar 1, 2024
cc0e795
Documentation: Update links to upstream Kernel documentation.
Mar 1, 2024
99c86c6
github: Temporarily disable SNAT with exhaustion system test.
igsilya Mar 1, 2024
6fc215d
ofproto-dpif-trace: Fix infinite recirculation tracing.
igsilya Feb 22, 2024
436aba6
bond: Reset stats when deleting post recirc rule.
amorenoz Feb 22, 2024
d439c20
appveyor: Print out config.log on configuration failure.
igsilya Mar 1, 2024
f5fa9a0
ovs-pki: Fix file permissions on Windows.
igsilya Mar 1, 2024
68e9312
m4: Fix linking with OpenSSL 1.1.0+ and 3+ on Windows.
igsilya Mar 1, 2024
9d82084
appveyor: Build with OpenSSL 3.0.
igsilya Mar 1, 2024
29e09c8
vswitch.xml: Use member wording for bonds.
Mar 6, 2024
0c255bf
Documentation: Update to refer to main repository.
Mar 6, 2024
f92b30a
netdev-linux: Rename struct nedev_linux field as is_lag_primary.
Mar 6, 2024
b3ebc34
netdev-linux: Rename local variables as primary_*.
Mar 6, 2024
e0aa15f
utilities: Use localhost as sample hostname.
Mar 6, 2024
6c082a8
conntrack: Fix flush not flushing all elements.
simonartxavier Mar 4, 2024
d2a42f3
tests: Fix "SSL db: Implementation" test with openssl > 3.2.0.
drizzt Mar 5, 2024
07c2ef5
bfd: Improve state change log message.
drizzt Mar 5, 2024
2c4ffd2
netdev-dpdk: Dump packets that fail Tx preparation.
igsilya Mar 7, 2024
33f45de
ovsdb: Don't iterate over rows on empty mutation.
mkp-rh Mar 6, 2024
fa0dfa1
github: Reduce ASLR entropy to be compatible with asan in llvm 14.
igsilya Mar 12, 2024
7df30c8
netdev-dpdk: Clean up all marker flags if no offloads requested.
igsilya Mar 11, 2024
f880976
netdev-dpdk: Clear inner packet marks if no inner offloads requested.
igsilya Mar 13, 2024
05e9f05
netdev-dpdk: Fix TCP check during Tx offload preparation.
igsilya Mar 13, 2024
0ce82ac
netdev-dpdk: Fix tunnel type check during Tx offload preparation.
igsilya Mar 13, 2024
86b9e65
revalidator: Add a USDT probe during flow deletion with purge reason.
kevinsprague Mar 5, 2024
b89a6b8
rhel: Enable USDT scripts by default in Fedora builds.
apconole Mar 5, 2024
679b068
AUTHORS: Add Kevin Sprague.
chaudron Mar 19, 2024
5339ce3
ofpbuf: Prevent undefined behavior in ofpbuf_clone.
almusil Mar 7, 2024
9d0a401
ofproto-dpif: Fix tunnel with different name del/add failure.
Mar 12, 2024
3388c34
ovs-tcpdump: Fix cleanup mirror failed with twice fatal signals.
danieldin95 Mar 20, 2024
8409796
route-table: Avoid routes from non-standard routing tables.
igsilya Mar 20, 2024
3ddb31f
ovs-monitor-ipsec: LibreSwan autodetect paths.
mkp-rh Mar 21, 2024
6f93d8e
netdev-dpdk: Disable outer UDP checksum offload for ice/i40e driver.
wangjun0728 Mar 22, 2024
e6a8a8e
AUTHORS: Add Jun Wang.
igsilya Mar 22, 2024
c6538b4
dpif-netdev: Fix crash due to tunnel offloading on recirculation.
igsilya Mar 22, 2024
bf7c0b0
ofproto-dpif-xlate: Fix continuations with associated metering.
apconole Mar 22, 2024
aab379e
ovsdb: raft: Avoid transferring leadership to unavailable servers.
igsilya Mar 26, 2024
bcad733
ovsdb: raft: Fix time intervals for multitasking while joining.
igsilya Mar 26, 2024
af5a997
ovsdb: raft: Fix permanent joining state on a cluster member.
igsilya Mar 26, 2024
e987af5
ovsdb: raft: Fix assertion when 1-node cluster looses leadership.
igsilya Mar 26, 2024
5b9feac
ovsdb: raft: Fix inability to join after leadership change round trip.
igsilya Mar 26, 2024
95ff912
appveyor: Prepare for rename of primary development branch.
Mar 22, 2024
2324596
Documentation: Update references to kernel datapath in OVS tree.
Mar 22, 2024
b674e7e
conntrack: Fix SNAT with exhaustion system test.
vlrpl Mar 28, 2024
b5e6829
conntrack: Do not use icmp reverse helper for icmpv6.
vlrpl Mar 28, 2024
6439d69
util: Support checking for kernel versions.
felixhuettner Mar 11, 2024
9ec849e
netlink-conntrack: Optimize flushing ct zone.
felixhuettner Mar 11, 2024
8bb0659
dpif: Stub out unimplemented action OVS_ACTION_ATTR_DEC_TTL.
erig0 Apr 3, 2024
dec09fd
dpif: Make get_datapath_cap() access support by pointer.
erig0 Apr 3, 2024
54d94f8
dpif: Support atomic_bool field type.
erig0 Apr 3, 2024
3c8d069
dpif: Probe support for OVS_ACTION_ATTR_DROP.
erig0 Apr 3, 2024
edf5624
tests: system-traffic: Add coverage for drop action.
erig0 Apr 3, 2024
337db58
tests: system-offload-traffic: Verify re-probe of drop action.
erig0 Apr 3, 2024
ed379a8
ofproto-dpif-upcall: Fix ukey installation failure logs and counters.
igsilya Apr 4, 2024
95f5012
checkpatch: Add additional words to extra_keywords.
chaudron Apr 2, 2024
9185793
tests: Fix compatibility issue with Python 3.13 in vlog.at.
fnordahl Apr 8, 2024
120140f
ofproto: Fix Coverity false positive.
Apr 9, 2024
74cf014
Documentation: Updates for rename of primary development branch as main.
Mar 20, 2024
a75e1c3
vlog: Log stack trace on vlog_abort.
igsilya Apr 5, 2024
a35fc4a
checkpatch: Don't spellcheck names in tags.
igsilya Apr 9, 2024
751e14c
cirrus: Update to FreeBSD 13.3.
igsilya Apr 10, 2024
241365b
python: Remove hacking dependency and use recent flake8.
dceara Apr 10, 2024
b34dac4
appveyor: Remove reference to master branch.
Apr 10, 2024
acf6537
github: Remove reference to master branch.
Apr 10, 2024
3cd0299
ovsdb-doc: Fix syntax warning with Python 3.12 and flake8 issues.
igsilya Apr 10, 2024
dd24c57
ovsdb-dot: Fix flake8 issues.
igsilya Apr 10, 2024
16b7475
github: Update python to 3.12.
igsilya Apr 10, 2024
e1e0c6a
checkpatch: Allow rST manpages to be added.
amorenoz Apr 9, 2024
66a8430
appveyor: Fix too wide OpenSSL version regexp.
igsilya Apr 11, 2024
4f29804
netdev-dpdk: Fix possible memory leak configuring VF MAC address.
Apr 16, 2024
2b7efee
socket: Increase listen backlog to 64 everywhere.
booxter Apr 12, 2024
fbade81
ovsdb-idl: Add python keyword to persistent UUID test.
otherwiseguy Apr 10, 2024
e876b04
rhel/systemd: Set ovsdb-server timeout to 5 minutes.
cjriches Apr 10, 2024
153d563
AUTHORS: Add Chris Riches.
igsilya Apr 23, 2024
d7f2150
ovsdb: raft: Fix inability to join a cluster with a large database.
igsilya Apr 11, 2024
bcacd80
ovsdb: raft: Fix probe intervals after install snapshot request.
igsilya Apr 11, 2024
fb46f5d
netdev-dpdk: Improve error print to the user for flow control error.
roidayan Apr 17, 2024
8ce5c95
dpctl: Fix segfault on ct-{set,del}-limits.
vlrpl Apr 22, 2024
1876b27
tests: Fix build failure with Clang 18 due to -Wformat-truncation.
igsilya Apr 26, 2024
169ff9e
tc: Fix -Wgnu-variable-sized-type-not-at-end warning with Clang 18.
igsilya Apr 26, 2024
bd8e9f4
sparse: Add immintrin.h header.
igsilya Apr 30, 2024
bf82d2c
Documentation: Update Pacemaker main page link.
May 1, 2024
c176635
test-conntrack: Add per zone benchmark tool.
felixhuettner Apr 24, 2024
139b564
conntrack: Key connections by zone.
felixhuettner Apr 24, 2024
01a0fff
docs: Document manual cluster recovery procedure.
booxter Apr 26, 2024
855df0a
sparse: Add additional define for sparse on GCC >= 14.
almusil May 2, 2024
f0e0e48
hash, jhash: Fix unaligned access to the hash remainder.
almusil May 3, 2024
b91f678
ofproto-dpif-trace: Fix access to an out-of-scope stack memory.
igsilya May 2, 2024
0940a51
ovsdb-client: Add missing arg to help for 'dump'.
mkalcok May 1, 2024
5dfbc64
ci: Set platform parameter when building DPDK.
david-marchand May 7, 2024
cbc54b2
AUTHORS: Add Martin Kalcok.
May 9, 2024
4989dc7
conntrack: Do not use {0} to initialize unions.
simonartxavier May 8, 2024
3833506
conntrack: Fully initialize conn struct before insertion.
mkp-rh May 10, 2024
90cd797
vlog: Destroy async_append first then close log_fd.
May 15, 2024
ac7a107
table: Fix freeing global variable.
May 15, 2024
f61e1da
AUTHORS: Add Pengfei Sun.
igsilya May 17, 2024
325ca04
packets: Assert for incorrect packet.
May 15, 2024
8d5486b
AUTHORS: Add Amit Prakash Shukla.
igsilya May 17, 2024
ec405e8
compiler: Fix errors in Clang 17 ubsan checks.
mkp-rh May 16, 2024
0c8e626
utilities: Correct deletion reason in flow_reval_monitor.py.
chaudron May 14, 2024
320f7e1
srv6: Fix misaligned writes to segment list.
igsilya May 17, 2024
4d2c64c
atlocal: Fix setting HAVE_PYTEST on unexpected errors.
igsilya May 17, 2024
d4bd0a2
atlocal: Replace deprecated pkg_resources.
igsilya May 17, 2024
ce1663b
netdev-linux: Fix ethtool_cmd is partly outside array bounds.
roidayan May 27, 2024
8e5a89c
netdev-offload: Fix null pointer dereference warning on dump creation.
mkp-rh May 27, 2024
8359cc4
netdev-native-tnl: Fix use of uninitialized offset on SRv6 header pop.
mkp-rh May 27, 2024
51a2476
dpctl: Fix uninitialized value when deleting flows.
mkp-rh May 27, 2024
4837b5f
socket: Fix uninitialized values in inet_parse_ functions.
mkp-rh May 27, 2024
0c1b9b0
netdev-linux: Return an error if device feature names are empty.
mkp-rh May 27, 2024
4d25656
netdev-linux: Initialize link speed in error conditions.
mkp-rh May 27, 2024
7af0716
odp-execute: Fix AVX checksum calculation.
emmaLfinn00 May 24, 2024
488ad8b
dpdk: Use DPDK 23.11.1 release.
kevintraynor May 28, 2024
18436be
netdev-linux: Fix possible int overflow in tc_add_matchall_policer().
chaudron May 29, 2024
b253d74
cfm: Fix possible integer overflow in tc_add_matchall_policer().
chaudron May 29, 2024
e42d3ed
sflow: Replace libc's random() function with the OVS's random_range().
chaudron May 29, 2024
11e48b8
sflow: Use uint32_t instead of time_t for tick handling in the poller.
chaudron May 29, 2024
f673d0c
sflow: Fix check for disabled receive time.
chaudron May 29, 2024
361d7bc
ofproto-dpif: Define age as time_t in ofproto_unixctl_fdb_add().
chaudron May 29, 2024
d97eee8
db-ctl-base: Initialize the output variable in the ctx structure.
chaudron May 29, 2024
f2e4195
netdev-linux: Fix uninitialized gso_type case.
chaudron May 29, 2024
6003a88
tests: Fix non-portable plus match in python vlog test.
igsilya Jun 3, 2024
474ebd6
ovsdb-idl: Add C IDL test for "monitor" fallback.
otherwiseguy May 6, 2024
4c0e1a1
python: ovsdb-idl: Use monitor_cond for _Server DB.
otherwiseguy May 6, 2024
8e2b06a
ovs-ctl: Fix typo.
gujun4990 May 20, 2024
4a838f6
AUTHORS: Add Jun Gu.
May 20, 2024
90b8e4d
docs: afxdp: Fix CONFIG_HAVE_EBPF_JIT Kconfig option spelling.
scop May 20, 2024
1d681ff
AUTHORS: Add Ville Skyttä.
May 20, 2024
3a6b8c8
ipf: Only add fragments to batch of same dl_type.
mkp-rh May 16, 2024
16f6885
ipf: Handle common case of ipf defragmentation.
mkp-rh May 16, 2024
40f0ac4
tests: sendpkt: Allow different input formats.
igsilya May 31, 2024
cd4ea33
tests: Convert ND, MPLS and CT sendpkt tests to compose-packet.
igsilya May 31, 2024
ac4df0c
nsh: Add support to compose-packet and use it in system tests.
igsilya May 31, 2024
792e8ee
debian: Fix tabs vs spaces.
roidayan May 28, 2024
6280f5d
netdev-offload-tc: Reserve lower tc prio for vlan ethertype.
dickmanmaor May 26, 2024
041d6ad
netdev-dpdk: Fallback to non tunnel checksum offloading.
david-marchand May 30, 2024
29abd07
netdev-dpdk: Disable outer UDP checksum for net/iavf.
david-marchand May 30, 2024
3d2c822
netdev-dpdk: Fix inner checksum when outer is not supported.
david-marchand May 30, 2024
d618d09
netdev-dpdk: Refactor TSO request code.
david-marchand May 30, 2024
844a7cf
netdev-dpdk: Use guest TSO segmentation size hint.
david-marchand May 30, 2024
c39a84c
netdev-dpdk: Refactor tunnel checksum offloading.
david-marchand May 30, 2024
2efae58
system-dpdk: Fix socket conflict when starting testpmd.
david-marchand Jun 6, 2024
f01a768
ci: Restore vhost-user unit tests in check-dpdk.
david-marchand Jun 6, 2024
35e6470
checkpatch: Don't warn on pointer to pointer.
amorenoz Jun 5, 2024
79a3065
python: ovsdb-idl: Make IndexedRows mirror hmap.
otherwiseguy Apr 10, 2024
d401291
python: ovsdb-idl: Convert new_uuid insert() arg to UUID.
otherwiseguy Apr 10, 2024
fad8c8f
python: idl: Fix index not being updated on row modification.
igsilya May 27, 2024
2c1a432
python: ovs: flow: Fix nested check_pkt_len acts.
amorenoz Jun 6, 2024
85d19a5
appveyor: Fix caching of OpenSSL installer.
igsilya Jun 10, 2024
c00dd0c
dpdk: Check other_config:dpdk-extra for '--lcores'.
kevintraynor Jun 13, 2024
8b405f4
ovsdb-client: Add "COLUMN" arg to help for 'dump'.
mkalcok Jun 7, 2024
24907bd
ovsdb-client: Document "--timeout" option in help.
mkalcok Jun 7, 2024
6b09799
ofp-prop: Fix unaligned 128 bit access.
mkp-rh Jun 19, 2024
2f196c8
netdev-dpdk: Use LSC interrupt mode.
david-marchand Jun 19, 2024
3f4df4c
odp-execute: Set IPv6 traffic class in AVX implementation.
emmaLfinn00 Jun 12, 2024
4811849
odp-execute: Check IPv4 checksum offload flag in AVX.
emmaLfinn00 Jun 17, 2024
639fcf2
netdev-dpdk: Check pending reset when adding device.
kevintraynor Jun 12, 2024
56e3159
vswitchd: Only lock pages that are faulted in.
igsilya Jun 14, 2024
c1dce72
python: ovsdb-idl: Add custom transaction operations.
otherwiseguy Jun 28, 2024
802df1e
ovs-monitor-ipsec: LibreSwan autodetect version.
mkp-rh Jun 28, 2024
239b59b
ovs-monitor-ipsec: LibreSwan v5 support.
mkp-rh Jun 28, 2024
773b0fb
cirrus: Update to FreeBSD 14.1.
igsilya Jul 2, 2024
f8ed133
ovsdb: raft: Don't forward more than one command to the leader.
igsilya Jun 26, 2024
939a5ce
Add global option for JSON output to ovs-appctl.
JM1 Jul 9, 2024
97a1bce
python: Add option for JSON output to unixctl classes and appctl.py.
JM1 Jul 9, 2024
a0925ce
appctl: Add option '--pretty' for pretty-printing JSON output.
JM1 Jul 9, 2024
3c572af
python: Add option for pretty-printing JSON output to appctl.py.
JM1 Jul 9, 2024
379d036
vswitchd: Add JSON output for 'list-commands' command.
JM1 Jul 9, 2024
4935e89
ofproto: Add JSON output for 'dpif/show' command.
JM1 Jul 9, 2024
d7e7714
tunnel: Allow UDP zero checksum with IPv6 tunnels.
mkp-rh Jul 5, 2024
d9de6b0
ofproto-dpif: Allow forcing dp features.
amorenoz Jul 13, 2024
1a3bd96
odp-util: Add support OVS_ACTION_ATTR_PSAMPLE.
amorenoz Jul 13, 2024
d0afbf0
ofproto_dpif: Check for psample support.
amorenoz Jul 13, 2024
5b99ebc
ofproto: Add ofproto-dpif-lsample.
amorenoz Jul 13, 2024
d54b967
vswitchd: Add local sampling to vswitchd schema.
amorenoz Jul 13, 2024
c10dbce
ofproto-dpif-xlate: Use psample for local sample.
amorenoz Jul 13, 2024
742de01
tests: Add test-psample testing utility.
amorenoz Jul 13, 2024
45034c2
tests: Test local sampling.
amorenoz Jul 13, 2024
516569d
ofproto: xlate: Make sampled drops explicit.
amorenoz Jul 13, 2024
c2e6836
ofproto-dpif-xlate: Avoid allocating mf_subfield.
amorenoz Jul 13, 2024
1aa9e13
ofp-actions: Load data from fields in sample action.
amorenoz Jul 13, 2024
9e6d43e
rhel: Make the version, displayed to the user, customizable.
drizzt Jul 10, 2024
600125b
ofproto: Add ofproto/detrace command to map UFIDs to OpenFlow.
dceara Jul 12, 2024
04c090c
ofproto-dpif-mirror: Reduce number of function parameters.
mkp-rh Jul 8, 2024
3b18822
ofproto-dpif-mirror: Add support for pre-selection filter.
mkp-rh Jul 8, 2024
0aa14d9
Prepare for 3.4.0.
igsilya Jul 15, 2024
903aa8f
Prepare for post-3.4.0 (3.4.90).
igsilya Jul 15, 2024
3985fa0
dpctl: Fix netdev reference leak in "show" command.
Jul 16, 2024
03cd668
dpif-netlink-rtnl: Fix netdev leak in out-of-tree tunnels probe.
david-marchand Jul 12, 2024
6165c92
ofp-actions: Fix reporting observation point bits instead of domain.
igsilya Jul 16, 2024
d5fef71
flow: Fix unaligned access to the ND target in miniflow_extract.
almusil Jul 16, 2024
f973d95
ofproto-dpif-xlate: Remove misleading wc NULL check in packet mirror.
igsilya Jul 16, 2024
ebdc3cf
docs: Define Read the Docs configuration for Sphinx HTML parameters.
igsilya Jul 17, 2024
f907840
ofproto-dpif-xlate: Initialize observe_offset for sample actions.
igsilya Jul 17, 2024
b516da1
util: Add non-NULL format assertion to xvasprintf.
igsilya Jul 17, 2024
53d9dcb
match: Fix false-positive snprintf size warning.
igsilya Jul 17, 2024
cdba5e3
AUTHORS: Add Vipul Ashri.
Jul 17, 2024
f12f4d8
Documentation: Update QEMU documentation URLs.
Jul 18, 2024
8f3d6c1
netlink-notifier: Silence the UBsan's function pointer mismatch error.
igsilya Jul 18, 2024
f5e1ab2
Apply P4-OVS changes to main branch
ffoulkes Oct 13, 2022
d093cc0
Add support for P4 table entry for mac learning and tunnel creation (…
nupuruttarwar Nov 21, 2022
c4ec3ce
Build ovs testcontroller as static library (#91)
nupuruttarwar Dec 7, 2022
6f60f62
Enble IPv6 support
n-sandeep May 5, 2023
9151347
Add CODEOWNERS file
ffoulkes Jun 18, 2023
c407102
Ignore CODEOWNERS file in dist-hook-git
ffoulkes Aug 9, 2023
62ea713
Support linux networking version 2
n-sandeep Nov 12, 2023
c7195f2
Address review comments and fix defects
n-sandeep Nov 17, 2023
99bc4cc
Add code owners
ffoulkes Nov 22, 2023
f7f8c5a
Fix OVS intermittent issue
n-sandeep Nov 22, 2023
7163eed
Runtime option to disable OvS offload to P4 target (#102)
n-sandeep Dec 7, 2023
cf156d1
Delete p4 target rules when interface is deleted.
n-sandeep Feb 2, 2024
790d530
Adding geneve support in p4_ovs
satish153 Jan 21, 2024
d07a956
Removing enum that was not needed
satish153 Feb 2, 2024
8ace143
Add support for combined recipe and linux networking v3 (#108)
nupuruttarwar Apr 2, 2024
89b0cc8
Introduce option to specify grpc server address for ovs-p4rt (#109)
nupuruttarwar Apr 17, 2024
baa2fea
Update codeowners file
ffoulkes Apr 19, 2024
e1e64bd
Add missing #includes
ffoulkes Apr 19, 2024
75ed9cd
Minor housekeeping on ovs-p4rt.h
ffoulkes Apr 19, 2024
55034d2
Move ovs-p4rt.h header file
ffoulkes May 5, 2024
439b0e7
Rename ovsp4rt public functions
ffoulkes May 21, 2024
d382e8d
Housekeeping and bug fixes (#116)
ffoulkes May 31, 2024
81faec7
Move --grpc_addr option to P4OVS help section (#117)
ffoulkes Jun 13, 2024
edd4944
Manually terminate grpc addr string to address Coverity hit (#118) (#…
5abeel Jun 14, 2024
28464fb
Update ovs-p4rt.h infrastructure (#122)
ffoulkes Jun 24, 2024
1baafe7
Update get_p4_vlan_mode() to use switch statement (#121)
ffoulkes Jun 24, 2024
03cef45
Rename grpc_addr to p4ovs_grpc_addr (#123)
ffoulkes Jun 24, 2024
123e31a
Fix compiler warning (#125)
ffoulkes Jul 2, 2024
d45d82e
Reengineer OvS to build with ovsp4rt libraries (#124)
ffoulkes Jul 3, 2024
a0ca844
Add processing for --with-p4ovs option (#126)
ffoulkes Jul 4, 2024
a5e545e
Fix failing tests in P4OVS build (#127)
ffoulkes Jul 22, 2024
f15baf7
Merge branch 'ipdk-latest' into rebase_on_3_4_90_8f3d6c145
ffoulkes Jul 23, 2024
652af73
Fix issue with static_move counter
ffoulkes Jul 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
64 changes: 64 additions & 0 deletions .ci/dpdk-build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#!/bin/bash

set -o errexit
set -x

function build_dpdk()
{
local DPDK_VER=$1
local DPDK_OPTS=""
local DPDK_INSTALL_DIR="$(pwd)/dpdk-dir"
local VERSION_FILE="$DPDK_INSTALL_DIR/cached-version"

rm -rf dpdk-src
rm -rf $DPDK_INSTALL_DIR

if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
git clone --single-branch $DPDK_GIT dpdk-src -b "${DPDK_VER##refs/*/}"
pushd dpdk-src
git log -1 --oneline
else
wget https://fast.dpdk.org/rel/dpdk-$1.tar.xz
tar xvf dpdk-$1.tar.xz > /dev/null
DIR_NAME=$(tar -tf dpdk-$1.tar.xz | head -1 | cut -f1 -d"/")
mv ${DIR_NAME} dpdk-src
pushd dpdk-src
fi

# Switching to 'generic' platform to make the dpdk cache usable on
# different CPUs. We can't be sure that all CI machines are exactly same.
DPDK_OPTS="$DPDK_OPTS -Dplatform=generic"

# Disable building DPDK unit tests. Not needed for OVS build or tests.
DPDK_OPTS="$DPDK_OPTS -Dtests=false"

# Disable DPDK developer mode, this results in less build checks and less
# meson verbose outputs.
DPDK_OPTS="$DPDK_OPTS -Ddeveloper_mode=disabled"

# OVS compilation and "normal" unit tests (run in the CI) do not depend on
# any DPDK driver.
# check-dpdk unit tests requires testpmd and some net/ driver.
DPDK_OPTS="$DPDK_OPTS -Denable_apps=test-pmd"
enable_drivers="net/null,net/af_xdp,net/tap,net/virtio,net/pcap"
DPDK_OPTS="$DPDK_OPTS -Denable_drivers=$enable_drivers"
# OVS depends on the vhost library (and its dependencies).
# net/tap depends on the gso library.
DPDK_OPTS="$DPDK_OPTS -Denable_libs=cryptodev,dmadev,gso,vhost"

# Install DPDK using prefix.
DPDK_OPTS="$DPDK_OPTS --prefix=$DPDK_INSTALL_DIR"

meson setup $DPDK_OPTS build
ninja -C build
ninja -C build install
popd

# Remove examples sources.
rm -rf $DPDK_INSTALL_DIR/share/dpdk/examples

echo "Installed DPDK in $DPDK_INSTALL_DIR"
echo "${DPDK_VER}" > ${VERSION_FILE}
}

build_dpdk $DPDK_VER
11 changes: 11 additions & 0 deletions .ci/dpdk-prepare.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash

set -ev

# Installing wheel separately because it may be needed to build some
# of the packages during dependency backtracking and pip >= 22.0 will
# abort backtracking on build failures:
# https://github.com/pypa/pip/issues/10655
pip3 install --disable-pip-version-check --user wheel
pip3 install --disable-pip-version-check --user pyelftools
pip3 install --user 'meson>=1.4,<1.5'
248 changes: 72 additions & 176 deletions .ci/linux-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,111 +6,13 @@ set -x
CFLAGS_FOR_OVS="-g -O2"
SPARSE_FLAGS=""
EXTRA_OPTS="--enable-Werror"

on_exit() {
if [ $? = 0 ]; then
exit
fi
FILES_TO_PRINT="config.log"
FILES_TO_PRINT="$FILES_TO_PRINT */_build/sub/tests/testsuite.log"

for pr_file in $FILES_TO_PRINT; do
cat "$pr_file" 2>/dev/null
done
}
# We capture the error logs as artifacts in Github Actions, no need to dump
# them via a EXIT handler.
[ -n "$GITHUB_WORKFLOW" ] || trap on_exit EXIT

function install_kernel()
{
if [[ "$1" =~ ^5.* ]]; then
PREFIX="v5.x"
elif [[ "$1" =~ ^4.* ]]; then
PREFIX="v4.x"
elif [[ "$1" =~ ^3.* ]]; then
PREFIX="v3.x"
else
PREFIX="v2.6/longterm/v2.6.32"
fi

base_url="https://cdn.kernel.org/pub/linux/kernel/${PREFIX}"
# Download page with list of all available kernel versions.
wget ${base_url}/
# Uncompress in case server returned gzipped page.
(file index* | grep ASCII) || (mv index* index.new.gz && gunzip index*)
# Get version of the latest stable release.
hi_ver=$(echo ${1} | sed 's/\./\\\./')
lo_ver=$(cat ./index* | grep -P -o "${hi_ver}\.[0-9]+" | \
sed 's/.*\..*\.\(.*\)/\1/' | sort -h | tail -1)
version="${1}.${lo_ver}"

rm -rf index* linux-*

url="${base_url}/linux-${version}.tar.xz"
# Download kernel sources. Try direct link on CDN failure.
wget ${url} ||
(rm -f linux-${version}.tar.xz && wget ${url}) ||
(rm -f linux-${version}.tar.xz && wget ${url/cdn/www})

tar xvf linux-${version}.tar.xz > /dev/null
pushd linux-${version}
make allmodconfig

# Cannot use CONFIG_KCOV: -fsanitize-coverage=trace-pc is not supported by compiler
sed -i 's/CONFIG_KCOV=y/CONFIG_KCOV=n/' .config

# stack validation depends on tools/objtool, but objtool does not compile on travis.
# It is giving following error.
# >>> GEN arch/x86/insn/inat-tables.c
# >>> Semantic error at 40: Unknown imm opnd: AL
# So for now disable stack-validation for the build.

sed -i 's/CONFIG_STACK_VALIDATION=y/CONFIG_STACK_VALIDATION=n/' .config
make oldconfig

# Older kernels do not include openvswitch
if [ -d "net/openvswitch" ]; then
make net/openvswitch/
else
make net/bridge/
fi

if [ "$AFXDP" ]; then
sudo make headers_install INSTALL_HDR_PATH=/usr
pushd tools/lib/bpf/
# Bulding with gcc because there are some issues in make files
# that breaks building libbpf with clang on Travis.
CC=gcc sudo make install
CC=gcc sudo make install_headers
sudo ldconfig
popd
# The Linux kernel defines __always_inline in stddef.h (283d7573), and
# sys/cdefs.h tries to re-define it. Older libc-dev package in xenial
# doesn't have a fix for this issue. Applying it manually.
sudo sed -i '/^# define __always_inline .*/i # undef __always_inline' \
/usr/include/x86_64-linux-gnu/sys/cdefs.h || true
EXTRA_OPTS="${EXTRA_OPTS} --enable-afxdp"
fi
popd
}
JOBS=${JOBS:-"-j4"}

function install_dpdk()
{
local DPDK_VER=$1
local VERSION_FILE="dpdk-dir/travis-dpdk-cache-version"
local DPDK_OPTS=""
local DPDK_LIB=""

if [ -z "$TRAVIS_ARCH" ] ||
[ "$TRAVIS_ARCH" == "amd64" ]; then
DPDK_LIB=$(pwd)/dpdk-dir/build/lib/x86_64-linux-gnu
elif [ "$TRAVIS_ARCH" == "aarch64" ]; then
DPDK_LIB=$(pwd)/dpdk-dir/build/lib/aarch64-linux-gnu
else
echo "Target is unknown"
exit 1
fi
local DPDK_INSTALL_DIR="$(pwd)/dpdk-dir"
local VERSION_FILE="${DPDK_INSTALL_DIR}/cached-version"
local DPDK_LIB=${DPDK_INSTALL_DIR}/lib/x86_64-linux-gnu

if [ "$DPDK_SHARED" ]; then
EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=shared"
Expand All @@ -122,58 +24,17 @@ function install_dpdk()
# Export the following path for pkg-config to find the .pc file.
export PKG_CONFIG_PATH=$DPDK_LIB/pkgconfig/:$PKG_CONFIG_PATH

if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
# Avoid using cache for git tree build.
rm -rf dpdk-dir
# Expose dpdk binaries.
export PATH=$(pwd)/dpdk-dir/bin:$PATH

DPDK_GIT=${DPDK_GIT:-https://dpdk.org/git/dpdk}
git clone --single-branch $DPDK_GIT dpdk-dir -b "${DPDK_VER##refs/*/}"
pushd dpdk-dir
git log -1 --oneline
else
if [ -f "${VERSION_FILE}" ]; then
VER=$(cat ${VERSION_FILE})
if [ "${VER}" = "${DPDK_VER}" ]; then
# Update the library paths.
sudo ldconfig
echo "Found cached DPDK ${VER} build in $(pwd)/dpdk-dir"
return
fi
fi
# No cache or version mismatch.
rm -rf dpdk-dir
wget https://fast.dpdk.org/rel/dpdk-$1.tar.xz
tar xvf dpdk-$1.tar.xz > /dev/null
DIR_NAME=$(tar -tf dpdk-$1.tar.xz | head -1 | cut -f1 -d"/")
mv ${DIR_NAME} dpdk-dir
pushd dpdk-dir
if [ ! -f "${VERSION_FILE}" ]; then
echo "Could not find DPDK in $DPDK_INSTALL_DIR"
return 1
fi

# Switching to 'default' machine to make dpdk-dir cache usable on
# different CPUs. We can't be sure that all CI machines are exactly same.
DPDK_OPTS="$DPDK_OPTS -Dmachine=default"

# Disable building DPDK unit tests. Not needed for OVS build or tests.
DPDK_OPTS="$DPDK_OPTS -Dtests=false"

# Disable DPDK developer mode, this results in less build checks and less
# meson verbose outputs.
DPDK_OPTS="$DPDK_OPTS -Ddeveloper_mode=disabled"

# Install DPDK using prefix.
DPDK_OPTS="$DPDK_OPTS --prefix=$(pwd)/build"

CC=gcc meson $DPDK_OPTS build
ninja -C build
ninja -C build install

# Update the library paths.
sudo ldconfig


echo "Installed DPDK source in $(pwd)"
popd
echo "${DPDK_VER}" > ${VERSION_FILE}
echo "Found cached DPDK $(cat ${VERSION_FILE}) build in $DPDK_INSTALL_DIR"
}

function configure_ovs()
Expand All @@ -187,7 +48,32 @@ function build_ovs()
configure_ovs $OPTS
make selinux-policy

make -j4
make ${JOBS}
}

function clang_analyze()
{
[ -d "./base-clang-analyzer-results" ] && cache_build=false \
|| cache_build=true
if [ "$cache_build" = true ]; then
# If this is a cache build, proceed to the base branch's directory.
pushd base_ovs_main
fi;

configure_ovs $OPTS

make clean
scan-build -o ./clang-analyzer-results -sarif --use-cc=${CC} make ${JOBS}

if [ "$cache_build" = true ]; then
# Move results, so it will be picked up by the cache.
mv ./clang-analyzer-results ../base-clang-analyzer-results
popd
else
# Only do the compare on the none cache builds.
sarif --check note diff ./base-clang-analyzer-results \
./clang-analyzer-results
fi;
}

if [ "$DEB_PACKAGE" ]; then
Expand Down Expand Up @@ -222,15 +108,12 @@ assert ovs.json.from_string('{\"a\": 42}') == {'a': 42}"
exit 0
fi

if [ "$KERNEL" ]; then
install_kernel $KERNEL
if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
install_dpdk
fi

if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
if [ -z "$DPDK_VER" ]; then
DPDK_VER="21.11.2"
fi
install_dpdk $DPDK_VER
if [ "$STD" ]; then
CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} -std=$STD"
fi

if [ "$CC" = "clang" ]; then
Expand All @@ -240,40 +123,53 @@ elif [ "$M32" ]; then
# Adding m32 flag directly to CC to avoid any posiible issues with API/ABI
# difference on 'configure' and 'make' stages.
export CC="$CC -m32"
elif [ "$TRAVIS_ARCH" != "aarch64" ]; then
OPTS="--enable-sparse"
if [ "$AFXDP" ]; then
# netdev-afxdp uses memset for 64M for umem initialization.
SPARSE_FLAGS="${SPARSE_FLAGS} -Wno-memcpy-max-count"
fi
else
EXTRA_OPTS="$EXTRA_OPTS --enable-sparse"
CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} ${SPARSE_FLAGS}"
fi

if [ "$ASAN" ]; then
# This will override default option configured in tests/atlocal.in.
if [ "$SANITIZERS" ]; then
# This will override default ASAN options configured in tests/atlocal.in.
export ASAN_OPTIONS='detect_leaks=1'
CFLAGS_ASAN="-fno-omit-frame-pointer -fno-common -fsanitize=address"
CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} ${CFLAGS_ASAN}"
fi

if [ "$UBSAN" ]; then
# Use the default options configured in tests/atlocal.in, in UBSAN_OPTIONS.
CFLAGS_UBSAN="-fno-omit-frame-pointer -fno-common -fsanitize=undefined"
CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} ${CFLAGS_UBSAN}"
CFLAGS_FOR_SAN="-fno-omit-frame-pointer -fno-common -fsanitize=$SANITIZERS"
CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} ${CFLAGS_FOR_SAN}"
fi

OPTS="${EXTRA_OPTS} ${OPTS} $*"

if [ "$TESTSUITE" ]; then
if [ "$CLANG_ANALYZE" ]; then
clang_analyze
exit 0
fi

if [ "$TESTSUITE" = 'test' ]; then
# 'distcheck' will reconfigure with required options.
# Now we only need to prepare the Makefile without sparse-wrapped CC.
configure_ovs

export DISTCHECK_CONFIGURE_FLAGS="$OPTS"
make distcheck -j4 CFLAGS="${CFLAGS_FOR_OVS}" \
TESTSUITEFLAGS=-j4 RECHECK=yes
make distcheck ${JOBS} CFLAGS="${CFLAGS_FOR_OVS}" \
TESTSUITEFLAGS=${JOBS} RECHECK=yes
else
build_ovs
for testsuite in $TESTSUITE; do
run_as_root=
if [ "$testsuite" != "check" ] && \
[ "$testsuite" != "check-ovsdb-cluster" ] ; then
run_as_root="sudo -E PATH=$PATH GITHUB_ACTIONS=$GITHUB_ACTIONS"
sudo ip netns add ovs-system-test-ns
# Some system tests may rely on traffic loopback.
sudo ip -netns ovs-system-test-ns link set dev lo up
run_as_root="${run_as_root} ip netns exec ovs-system-test-ns"
fi
if [ "${testsuite##*dpdk}" != "$testsuite" ]; then
sudo sh -c 'echo 1024 > /proc/sys/vm/nr_hugepages' || true
[ "$(cat /proc/sys/vm/nr_hugepages)" = '1024' ]
export DPDK_EAL_OPTIONS="--lcores 0@1,1@1,2@1"
fi
$run_as_root make $testsuite TESTSUITEFLAGS="${JOBS} ${TEST_RANGE}" \
RECHECK=yes
done
fi

exit 0
Loading