1. 25 May, 2022 1 commit
  2. 06 May, 2022 4 commits
    • Kirill Smelkov's avatar
    • Kirill Smelkov's avatar
      Kernel part of "mesh multicast" problem solved · 3e684fcf
      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
      
      	linux@25bcc760
      	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.
      3e684fcf
    • Kirill Smelkov's avatar
      tmcast: Cosmetics · 66a19431
      Kirill Smelkov authored
      66a19431
    • Kirill Smelkov's avatar
      4dc50bc8
  3. 04 May, 2022 3 commits
  4. 02 May, 2022 9 commits
  5. 29 Apr, 2022 18 commits