Skip to content

DCE fixes, GitHub CI fixes and update to ns3.49 - #149

Open
Gabrielcarvfer wants to merge 2 commits into
direct-code-execution:masterfrom
Gabrielcarvfer:DceCiFixesAndPortToNs3.49
Open

Gabrielcarvfer wants to merge 2 commits into
direct-code-execution:masterfrom
Gabrielcarvfer:DceCiFixesAndPortToNs3.49

Conversation

@Gabrielcarvfer

Copy link
Copy Markdown

No description provided.

Gabrielcarvfer and others added 2 commits October 7, 2026 17:14
Run the GitHub Actions workflow on pushes to master and on every pull request, and drop the obsolete bake-based workflow (Ubuntu 20.04 runners and upload-artifact@v1 no longer exist).

Add utils/build_kernel_deps.sh, which builds what bake used to provide: net-next-nuse (Linux 4.4 libos), freebsd-sim, DCE builds of ip, iperf, thttpd, wget, ping/ping6 and quagga, and the ns-3-dce-quagga module, patched for current ns-3 and toolchains (GCC 11-14, Make 4.4). The workflow caches its output and configures DCE with --enable-kernel-stack.

Fix DCE for ns-3.46 and Linux semantics:
- set the node on Ipv4Interfaces (Linux and FreeBSD glue) and give kernel-stack nodes an inert ArpL3Protocol for CSMA devices
- notify connection success for connectionless kernel sockets
- deliver multicast locally in Ipv4DceRouting (raw sockets, OSPF)
- implement sigwait()
- ns-3 stream sockets: connect() succeeds when the peer accepts and closes at once, and reports ECONNREFUSED when refused
- ns-3 stack: IPv6 UDP sockets, IPV6_JOIN/LEAVE_GROUP, IPV6_RECVPKTINFO, ICMP6_FILTER, IPV6_PKTINFO on send, no IPv6 header on raw receive, delivery for raw-only IPv6 protocols such as OSPFv3
- netlink and pktinfo use Linux-style interface indexes consistently
- reset glibc's getopt state for each simulated process
- drop the NSC stacks from dce-tcp-ns3-nsc-comparison; use 802.11a in the MPTCP handoff examples

Enable the disabled select/poll/tcp-socket/signal process-manager tests, all quagga test cases and the dce-xfrm example. 79/79 pass on Ubuntu 22.04, Ubuntu 24.04 and Debian trixie with ns-3.46.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Ipv4InterfaceAddress no longer has secondary addresses: drop the IsSecondary() checks in the Linux and FreeBSD IPv4 glue
- Ipv4GlobalRouting moved to ns3/global-routing.h
- Address::Register() now takes the address kind and its length
- CI: build against ns-3.49; drop Ubuntu 22.04, whose CMake (3.22) is older than ns-3.49 requires

79/79 tests and examples pass on Ubuntu 24.04 and Debian trixie.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Gabrielcarvfer

Copy link
Copy Markdown
Author

@Sikabo would you mind giving this a look. Not sure if it also fixes #148 along with the other things. Hopefully yes. :)

@Gabrielcarvfer

Copy link
Copy Markdown
Author

@tomhenderson @thehajime I think this would could be merged right away then do a release. Then we follow up with the LKL patches and new applications in a separate release.

@tomhenderson tomhenderson left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I read this patch and didn't spot anything concerning, so I agree to merge it.

@Gabrielcarvfer
Gabrielcarvfer force-pushed the DceCiFixesAndPortToNs3.49 branch from 5dbc0e8 to 10a1249 Compare November 9, 2026 22:54

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.

2 participants