Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Split-Duplex: new management
authorBruno Donassolo <bruno.donassolo@inria.fr>
Fri, 18 Jun 2021 13:11:57 +0000 (15:11 +0200)
committerBruno Donassolo <bruno.donassolo@inria.fr>
Mon, 28 Jun 2021 15:47:14 +0000 (17:47 +0200)
commit19e1048a7009c4144b0f361ad85fb9dff44761ea
treea91a5f517a9941c0947acd28913e99d28e5dedb6
parenteda3d282409cf5457333d4de459ad83afacaf599
Split-Duplex: new management

1. Huge commit to add support to Split-Duplex in S4U.
  - New interface: s4u::SplitDuplexLink

2. Allows its creation through the C++ interface without manually creating
the link UP and DOWN.
  - NetZone::create_split_duplex_link

3. Changes in NetZone::add_route to allow the description of the
direction in C++ interface
  - LinkInRoute: wrap around Link* to indicate the direction
(UP/DOWN/NONE) for the link.
  - UP/DOWN are used to split-duplex links
  - NONE for other types (shared, wifi, fat-pipe)

4. Fix use of split-duplex links in symmetric routes in XML too.
     <route src="alice" dst="bob" symmetrical="YES">
       <link_ctn id="link1" direction="UP"/>
     </route>
  Now this code works, it will add the link1_DOWN as route to
bob->alice. In the past, it would add link1_UP for bob->alice too.
59 files changed:
MANIFEST.in
docs/source/Platform_cpp.rst
examples/cpp/clusters-multicpu/s4u-clusters-multicpu.cpp
examples/cpp/comm-serialize/s4u-comm-serialize.cpp
examples/cpp/network-factors/s4u-network-factors.cpp
examples/cpp/plugin-prodcons/s4u-plugin-prodcons.cpp
examples/platforms/griffon.cpp
examples/platforms/routing_cluster.cpp
include/simgrid/forward.h
include/simgrid/kernel/routing/DijkstraZone.hpp
include/simgrid/kernel/routing/FloydZone.hpp
include/simgrid/kernel/routing/FullZone.hpp
include/simgrid/kernel/routing/NetZoneImpl.hpp
include/simgrid/kernel/routing/RoutedZone.hpp
include/simgrid/kernel/routing/StarZone.hpp
include/simgrid/s4u/Engine.hpp
include/simgrid/s4u/Link.hpp
include/simgrid/s4u/NetZone.hpp
src/bindings/lua/lua_platf.cpp
src/kernel/EngineImpl.cpp
src/kernel/EngineImpl.hpp
src/kernel/routing/DijkstraZone.cpp
src/kernel/routing/DijkstraZone_test.cpp
src/kernel/routing/FloydZone.cpp
src/kernel/routing/FloydZone_test.cpp
src/kernel/routing/FullZone.cpp
src/kernel/routing/FullZone_test.cpp
src/kernel/routing/NetZoneImpl.cpp
src/kernel/routing/RoutedZone.cpp
src/kernel/routing/StarZone.cpp
src/kernel/routing/StarZone_test.cpp
src/kernel/routing/VivaldiZone.cpp
src/s4u/s4u_Engine.cpp
src/s4u/s4u_Link.cpp
src/s4u/s4u_Netzone.cpp
src/surf/LinkImpl.cpp [new file with mode: 0644]
src/surf/LinkImpl.hpp [new file with mode: 0644]
src/surf/LinkImplIntf.hpp [new file with mode: 0644]
src/surf/SplitDuplexLinkImpl.cpp [new file with mode: 0644]
src/surf/SplitDuplexLinkImpl.hpp [new file with mode: 0644]
src/surf/SplitDuplexLinkImpl_test.cpp [new file with mode: 0644]
src/surf/network_cm02.cpp
src/surf/network_cm02.hpp
src/surf/network_interface.cpp
src/surf/network_interface.hpp
src/surf/network_ns3.cpp
src/surf/network_ns3.hpp
src/surf/network_wifi.cpp
src/surf/network_wifi.hpp
src/surf/ptask_L07.cpp
src/surf/ptask_L07.hpp
src/surf/sg_platf.cpp
src/surf/xml/platf_private.hpp
src/surf/xml/surfxml_sax_cb.cpp
teshsuite/s4u/seal-platform/seal-platform.cpp
teshsuite/simdag/flatifier/flatifier.tesh
teshsuite/simdag/platforms/two_hosts_one_link_splitduplex.xml
tools/cmake/DefinePackages.cmake
tools/cmake/Tests.cmake