netperf_sysconf_jakob.py 3.76 KB
Newer Older
1
2
3
4
5
6
7
from simbricks.orchestration.system import base as sys_base
from simbricks.orchestration.system import pcie as sys_pcie
from simbricks.orchestration.system import eth as sys_eth
from simbricks.orchestration.system import nic as sys_nic
from simbricks.orchestration.system.host import base as sys_host_base
from simbricks.orchestration.system.host import app as sys_app_base
from simbricks.orchestration.helpers import system as helpers_sys
8
9
10


def boilerplate():
11
12
13
14
    """
    SYSTEM CONFIGURATION
    """
    system = sys_base.System()
15
16

    # create client host
17
18
    host0 = sys_host_base.CorundumLinuxHost()
    host0_app = sys_app_base.PingClient(host0)
19
    host0_app.server_ip = '10.0.0.2'
20
21
22
    host0.add_app(host0_app)

    # create client nic
23
    nic0 = sys_nic.CorundumNIC()
24
    nic0.add_ipv4("10.0.0.1")
25
26

    # connect client host and nic
27
    host_pci0 = sys_pcie.PCIeHostInterface(host0)
28
    host0.add_if(host_pci0)
29
    nic_pci0 = sys_pcie.PCIeDeviceInterface(nic0)
30
    nic0.add_if(nic_pci0)
31
32
    host0_nic0_chan = sys_pcie.PCIeChannel(host_pci0, nic_pci0)

33
    # create host server
34
35
    host1 = sys_host_base.I40ELinuxHost()
    host1_app = sys_app_base.Sleep(host1)
36
37
38
    host1.add_app(host1_app)

    # create host nic
39
    nic1 = sys_nic.IntelI40eNIC()
40
    nic1.add_ipv4("10.0.0.2")
41
42

    # connect host server to host client
43
    host_pci1 = sys_pcie.PCIeHostInterface(host0)
44
    host1.add_if(host_pci1)
45
    nic_pci1 = sys_pcie.PCIeDeviceInterface(nic1)
46
    nic1.add_if(nic_pci1)
47
    host1_nic1_chan = sys_pcie.PCIeChannel(host_pci1, nic_pci1)
48
49

    # create first switch
50
    switch0 = sys_eth.EthSwitch(system)
51
52

    # create second switch
53
    switch1 = sys_eth.EthSwitch(system)
54
55

    # connect first switch to client nic
56
    nic_eth0 = sys_eth.EthInterface(nic0)
57
    nic0.set_eth_if(nic_eth0)
58
    switch0_for_nic = sys_eth.EthInterface(switch0)
59
    switch0.if_add(switch0_for_nic)
60
    nic0_switch0_chan = sys_eth.EthChannel(nic_eth0, switch0_for_nic)
61
62

    # connect second switch to server nic
63
    nic_eth1 = sys_eth.EthInterface(nic1)
64
    nic1.set_eth_if(nic_eth1)
65
    switch1_for_nic = sys_eth.EthInterface(switch1)
66
    switch1.if_add(switch1_for_nic)
67
    nic1_switch1_chan = sys_eth.EthChannel(nic_eth1, switch1_for_nic)
68
69

    # connect first switch to second switch
70
    switch0_for_net = sys_eth.EthInterface(switch0)
71
    switch0.if_add(switch0_for_net)
72
    switch1_for_net = sys_eth.EthInterface(switch1)
73
    switch1.if_add(switch1_for_net)
74
75
76
77
78
    switch0_switch1_chan = sys_eth.EthChannel(switch0_for_net, switch1_for_net)

    """
    SIMULATION CONFIGURATION
    """
79
80
81


def syntactic_sugar():
82
83
84
    """
    SYSTEM CONFIGURATION SYNTACTIC SUGAR
    """
85
86
87
    system = system.System()

    # create client host
88
    host0 = sys_host_base.CorundumLinuxHost()
89
    helpers_sys.install_app(host=host0, app_ty=sys_app_base.PingClient, server_ip='10.0.0.2')
90
91

    # create client nic
92
93
    nic0 = sys_nic.CorundumNIC()
    nic0.add_ipv4("10.0.0.1")
94
95

    # connect client host and nic
96
97
    helpers_sys.connect_host_and_device(host=host0, device=nic0)

98
    # create host server
99
    host1 = sys_host_base.I40ELinuxHost()
100
    helpers_sys.install_app(host=host1, app_ty=sys_app_base.Sleep, delay=10)
101
102

    # create host nic
103
    nic1 = sys_nic.IntelI40eNIC()
104
    nic1.add_ipv4("10.0.0.2")
105
106

    # connect host server to host client
107
    helpers_sys.connect_host_and_device(host=host1, device=nic1)
108
109

    # create first switch
110
    switch0 = sys_eth.EthSwitch(system)
111
112

    # create second switch
113
    switch1 = sys_eth.EthSwitch(system)
114
115

    # connect first switch to client nic
116
    helpers_sys.connect_eth_devices(device_a=nic0, device_b=switch0)
117
118

    # connect second switch to server nic
119
    helpers_sys.connect_eth_devices(device_a=nic1, device_b=switch1)
120
121

    # connect first switch to second switch
122
    helpers_sys.connect_eth_devices(device_a=switch0, device_b=switch1)