Exemplo n.º 1
0
                      max_queue_size=router_queue_size)
    object_L.append(router_C)

    encap_tbl_D = {}
    frwd_tbl_D = {0: 1, 1: 1}
    decap_tbl_D = {0: {0: 1}, 2: {1: 1}}
    router_D = Router(name='RD',
                      intf_capacity_L=[500, 100, 500],
                      encap_tbl_D=encap_tbl_D,
                      frwd_tbl_D=frwd_tbl_D,
                      decap_tbl_D=decap_tbl_D,
                      max_queue_size=router_queue_size)
    object_L.append(router_D)

    #create a Link Layer to keep track of links between network nodes
    link_layer = LinkLayer()
    object_L.append(link_layer)

    #add all the links - need to reflect the connectivity in cost_D tables above
    link_layer.add_link(Link(host_1, 0, router_a, 0))
    link_layer.add_link(Link(host_2, 0, router_a, 2))
    link_layer.add_link(Link(router_a, 1, router_b, 0))
    link_layer.add_link(Link(router_a, 3, router_C, 0))
    link_layer.add_link(Link(router_b, 1, router_D, 0))
    link_layer.add_link(Link(router_C, 1, router_D, 2))
    link_layer.add_link(Link(router_D, 1, host_3, 0))

    #start all the objects
    thread_L = []
    for obj in object_L:
        thread_L.append(threading.Thread(name=obj.__str__(), target=obj.run))
Exemplo n.º 2
0
    #Still need to be able to have source, to send to new route
    frwd_tbl_D = {'1': ['7', 'H1', 2], '2':['8','H2',1], '6':['97','H3',0]}     # table used to forward MPLS frames
    decap_tbl_D = {'97':'H3'}    # table used to decapsulate network packets from MPLS frames
    router_d = Router(name='RD',
                              intf_capacity_L=[100, 100, 100],
                              encap_tbl_D = encap_tbl_D,
                              frwd_tbl_D = frwd_tbl_D,
                              decap_tbl_D = decap_tbl_D,
                              max_queue_size=router_queue_size)
    object_L.append(router_d)



    
    #create a Link Layer to keep track of links between network nodes
    link_layer = LinkLayer()
    object_L.append(link_layer)
    
    #add all the links - need to reflect the connectivity in cost_D tables above
    link_layer.add_link(Link(host_1, 0, router_a, 3))
    link_layer.add_link(Link(host_2, 0, router_a, 2))

    link_layer.add_link(Link(router_a, 0, router_b, 1))
    link_layer.add_link(Link(router_a, 1, router_c, 0))

    link_layer.add_link(Link(router_d, 2, router_b, 0))
    link_layer.add_link(Link(router_d, 1, router_c, 1))

    link_layer.add_link(Link(host_3, 0, router_d, 0))

    #start all the objects
                '2': 1
            }
        }
    }  # {inlabel: {ininterface: {outlabel, outinterface}}}
    # if receive something from RB/C (label 4) transmit to H3
    decap_tbl_D = {'4': 'H3'}
    router_d = Router(name='RD',
                      intf_capacity_L=[500, 50, 500],
                      encap_tbl_D=encap_tbl_D,
                      frwd_tbl_D=frwd_tbl_D,
                      decap_tbl_D=decap_tbl_D,
                      max_queue_size=router_queue_size)
    object_L.append(router_d)

    #create a Link Layer to keep track of links between network nodes
    link_layer = LinkLayer()
    object_L.append(link_layer)

    #add all the links - need to reflect the connectivity in cost_D tables above
    link_layer.add_link(Link(host_1, 0, router_a,
                             0))  # host to router a connections
    link_layer.add_link(Link(host_2, 0, router_a, 1))
    link_layer.add_link(Link(router_a, 2, router_b,
                             0))  # router a to router b connections
    link_layer.add_link(Link(router_a, 3, router_c,
                             0))  # router a to router b connections
    link_layer.add_link(Link(router_b, 1, router_d, 0))  # router b to router d
    link_layer.add_link(Link(router_c, 1, router_d, 1))  # router c to router d
    link_layer.add_link(Link(router_d, 2, host_3, 0))  # host 3 to router d

    #start all the objects