Skip to content

Preserve TCP ECN flags when parsing and serializing packets - #214

Open
bensynapse wants to merge 1 commit into
faucetsdn:masterfrom
bensynapse:fix-tcp-ecn-flags
Open

bensynapse wants to merge 1 commit into
faucetsdn:masterfrom
bensynapse:fix-tcp-ecn-flags

Conversation

@bensynapse

Copy link
Copy Markdown

I run Live Tennis API.

Decoding a TCP header drops ECE and CWR, so a packet round trip loses its ECN flags. Serializing the existing TCP_NS constant raises struct.error.

Preserve all nine exposed flag bits across both header bytes, including automatic data offset calculation. The reserved bits stay ignored.

Four regressions cover all 512 flag combinations, automatic and explicit offsets, options padding, checksums and IPv4/IPv6 packet round trips. All four fail before the fix. On Python 3.9.25, python ryu/tests/run_tests.py ryu.tests.unit.packet passes all 794 tests.

python ryu/tests/run_tests.py reports 121,915 tests, one skip and zero failures with the declared minimum ovs 2.6.0.

python setup.py sdist bdist_wheel passes in an isolated source copy. The manager startup check passes. pycodestyle ryu and autopep8 --recursive --diff ryu/ pass with pycodestyle 2.7.0 and autopep8 1.5.7.

Current pycodestyle 2.14.0 reports the same 50 existing source findings on this branch and upstream. With ovs 3.7.1, both full suites have 15 OVS errors and two resulting failures. Those errors use the removed ovs.db.idl._uuid_to_row helper.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant