mirror of
https://github.com/logos-messaging/logos-delivery-interop-tests.git
synced 2026-04-14 21:13:32 +00:00
* Add REST API traffic bypass for network conditions manipulation - Introduced methods to apply packet loss only to P2P traffic, excluding REST API traffic. - Simplified test cases to leverage new differentiated packet loss handling. - Removed unused and legacy metrics/tests for cleaner configuration and coverage. * Refactor network conditions setup to streamline command execution * Pin priomap so libp2p traffic actually hits netem The default prio qdisc priomap routes SO_PRIORITY 6 and 7 to band 0, which is our REST bypass class 1:1. libp2p/gossipsub packets set a high SO_PRIORITY on their sockets, so they were silently escaping the netem impairment via the priomap rather than through the u32 filter. The result: test_relay_packet_loss_correlated_vs_uncorrelated became green by accident because no loss was ever applied to relay traffic. Forcing priomap to 1 1 1 1 ... on all 16 slots routes every SO_PRIORITY value to band 1 (netem). The u32 filter remains the only path to 1:1, so REST stays isolated and libp2p now takes the configured loss. Verified in alpine netns: with SO_PRIORITY=6, 50 packets to a non-REST port ended up in 1:1 under the old rules (0 drops); with the forced priomap they land in 1:2 and see the expected ~50% drop rate. * Refactor P2P traffic loss handling; isolate REST API traffic - Added `_p2p_iface` to dynamically detect libp2p interface tied to the Waku network. - Introduced `add_packet_loss_p2p_only` and `add_packet_loss_correlated_p2p_only` for targeted packet loss on libp2p traffic. - Replaced REST API traffic bypass logic with simplified P2P interface-based tc rules. - Updated tests to use `clear_p2p` for cleanup, ensuring REST traffic remains unaffected. --------- Co-authored-by: Egor Rachkovskii <egorrachkovskii@status.im>