- 06 May, 2022 4 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
Packets delivery in IPv4/IPv6 multicast is handled together by multicast-routing daemon and by kernel. The MR daemon installs routes into kernel, and the kernel actually routes the traffic. We want the overall solution to obey to the following properties: every member of the group * can send a packet to the group via single uniform send call. * That packet will be delivered to all members of the group - both on the same and on other machines, exactly once to each recipient. This suggests sending/reception to be organized via one virtual interface and then forwarded outside/into-inside as needed. This patch adds topo-ABCDloop which creates a 4-nodes network with cycle. It then manually installs static multicast routes the way, with avoiding loops and that a packet sent from particular sender is delivered to all other members of the network exactly once. The sending/reception is organized via mcast-rx/mcast-tx veth pair, or via loopback if the kernel has the following fixes kirr/linux@25bcc760 kirr/linux@43eadf90 It was tested to work ok via # on A # ./tmcast.py txrx6 A joining ff1e::1 @ [7]mcast-rx tx: A.1 ... rx: A.1 tx: A.2 ... rx: A.2 tx: A.3 ... rx: A.3 # on B # ./tmcast.py rx6 joining ff1e::1 @ [7]mcast-rx rx: A.1 rx: A.2 rx: A.3 # on C # ./tmcast.py rx6 joining ff1e::1 @ [7]mcast-rx rx: A.1 rx: A.2 rx: A.3 # on D # ./tmcast.py rx6 joining ff1e::1 @ [7]mcast-rx rx: A.1 rx: A.2 rx: A.3 and similarly for also B, C or D being sender and all that with also IPv4. Please see inside for details. See also the following patch for more in-depth debugging of used approach.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 04 May, 2022 3 commits
-
-
Thomas Gambier authored
-
Kirill Smelkov authored
So that we clearly see problems if packets are looped wrongly.
-
Kirill Smelkov authored
Or else cancellation does not work. Amends 334a148f (tmcast.py: Handle SIGINT/SIGTERM).
-
- 02 May, 2022 9 commits
-
-
Thomas Gambier authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
linear: B--A--C triangle: B-----A \ / \ / C
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
So that smcrouted could be run separately on each.
-
Thomas Gambier authored
-
Thomas Gambier authored
-
- 29 Apr, 2022 18 commits
-
-
Kirill Smelkov authored
See nexedi/nxdtest@b0cf277d for details and for why signal handling is implemented like this.
-
Léo-Paul Géneau authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Léo-Paul Géneau authored
-