当前位置: 首页>>代码示例>>Python>>正文


Python Controller.get_openflow_nodes_operational_list方法代码示例

本文整理汇总了Python中pybvc.controller.controller.Controller.get_openflow_nodes_operational_list方法的典型用法代码示例。如果您正苦于以下问题:Python Controller.get_openflow_nodes_operational_list方法的具体用法?Python Controller.get_openflow_nodes_operational_list怎么用?Python Controller.get_openflow_nodes_operational_list使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pybvc.controller.controller.Controller的用法示例。


在下文中一共展示了Controller.get_openflow_nodes_operational_list方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: of_demo_1

# 需要导入模块: from pybvc.controller.controller import Controller [as 别名]
# 或者: from pybvc.controller.controller.Controller import get_openflow_nodes_operational_list [as 别名]
def of_demo_1():
    f = "cfg.yml"
    d = {}
    if(load_dict_from_file(f, d) is False):
        print("Config file '%s' read error: " % f)
        exit()

    try:
        ctrlIpAddr = d['ctrlIpAddr']
        ctrlPortNum = d['ctrlPortNum']
        ctrlUname = d['ctrlUname']
        ctrlPswd = d['ctrlPswd']
#        nodeName = d['nodeName']
        rundelay = d['rundelay']
    except:
        print ("Failed to get Controller device attributes")
        exit(0)

    print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
    print ("<<< Demo 1 Start")
    print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")

    print ("\n")
    print ("<<< Creating Controller instance")
    time.sleep(rundelay)
    ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd, None)
    print ("'Controller':")
    print ctrl.brief_json()

    print "\n"
    print ("<<< Get list of OpenFlow nodes connected to the Controller")
    time.sleep(rundelay)
    result = ctrl.get_openflow_nodes_operational_list()
    status = result.get_status()
    if(status.eq(STATUS.OK)):
        print ("OpenFlow node names (composed as \"openflow:datapathid\"):")
        nodenames = result.get_data()
        print json.dumps(nodenames, indent=4)
    else:
        print ("\n")
        print ("!!!Demo terminated, reason: %s" % status.brief().lower())
        exit(0)

    print "\n"
    print ("<<< Get generic information about OpenFlow nodes")
    time.sleep(rundelay)
    for name in nodenames:
        ofswitch = OFSwitch(ctrl, name)
        result = ofswitch.get_switch_info()
        status = result.get_status()
        if(status.eq(STATUS.OK)):
            print ("'%s' info:" % name)
            info = result.get_data()
            print json.dumps(info, indent=4)
        else:
            print ("\n")
            print ("!!!Demo terminated, reason: %s" % status.brief().lower())
            exit(0)

    print ("\n")
    print (">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
    print (">>> Demo End")
    print (">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
开发者ID:BillTheBest,项目名称:pybvc,代码行数:65,代码来源:demo1.py

示例2: print

# 需要导入模块: from pybvc.controller.controller import Controller [as 别名]
# 或者: from pybvc.controller.controller.Controller import get_openflow_nodes_operational_list [as 别名]
    print ("<<< Demo Start")
    print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")

    rundelay = 5

    print ("\n")
    print ("<<< Creating Controller instance")
    time.sleep(rundelay)
    ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd, None)
    print ("'Controller':")
    print ctrl.brief_json()

    print "\n"
    print ("<<< Get list of OpenFlow nodes connected to the Controller")
    time.sleep(rundelay)
    result = ctrl.get_openflow_nodes_operational_list()
    status = result[0]
    if status.eq(STATUS.OK) == True:
        print ('OpenFlow node names (composed as "openflow:datapathid"):')
        nodenames = result[1]
        #        for node in nodes:
        #            print ("   %s" % node)
        print json.dumps(nodenames, indent=4)
    else:
        print ("\n")
        print ("!!!Demo terminated, reason: %s" % status.brief().lower())
        exit(0)

    print "\n"
    print ("<<< Get generic information about OpenFlow nodes")
    time.sleep(rundelay)
开发者ID:jebpublic,项目名称:pybvcsamples,代码行数:33,代码来源:of_getSwitchInfo.py

示例3: origApp

# 需要导入模块: from pybvc.controller.controller import Controller [as 别名]
# 或者: from pybvc.controller.controller.Controller import get_openflow_nodes_operational_list [as 别名]
def origApp(srcIp, destIp):
    f = "cfg.yml"
    d = {}
    if load_dict_from_file(f, d) == False:
        print ("Config file '%s' read error: " % f)
        exit()

    try:
        ctrlIpAddr = d["ctrlIpAddr"]
        ctrlPortNum = d["ctrlPortNum"]
        ctrlUname = d["ctrlUname"]
        ctrlPswd = d["ctrlPswd"]
        nodeName = d["nodeName"]
    except:
        print ("Failed to get Controller device attributes")
        exit(0)

    print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
    print ("<<< Demo Start")
    print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")

    rundelay = 0

    ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd)

    result = ctrl.get_openflow_nodes_operational_list()
    status = result.get_status()
    if status.eq(STATUS.OK) == True:
        print ('OpenFlow node names (composed as "openflow:datapathid"):')
        nodenames = result.get_data()
        print json.dumps(nodenames, indent=4)
    else:
        print ("\n")
        print ("!!!Demo terminated, reason: %s" % status.brief().lower())
        exit(0)

    idx = mktime(gmtime(0))

    for n in nodenames:
        ofswitch = OFSwitch(ctrl, n)

        # --- Flow Match:
        #                 IPv4 Source Address
        #                 IPv4 Destination Address
        #     NOTE: Ethernet type MUST be 2048 (0x800) -> IPv4 protocol
        eth_type = ETH_TYPE_IPv4
        ipv4_src = srcIp
        ipv4_dst = destIp

        print ("<<< 'Controller': %s, 'OpenFlow' switch: '%s'" % (ctrlIpAddr, n))

        print "\n"
        print ("<<< Set OpenFlow flow on the Controller")
        print (
            "        Match:  Ethernet Type (%s)\n"
            "                IPv4 Source Address (%s)\n"
            "                IPv4 Destination Address (%s)\n" % (hex(eth_type), ipv4_src, ipv4_dst)
        )
        print ("        Action: Output (NORMAL)")

        time.sleep(rundelay)

        for i in range(0, 2):

            flow_entry = FlowEntry()
            table_id = 0
            flow_entry.set_flow_table_id(table_id)
            flow_id = 16 + idx
            idx = idx + 1
            flow_entry.set_flow_id(flow_id)
            flow_entry.set_flow_priority(flow_priority=1007)

            # --- Instruction: 'Apply-actions'
            #     Action:      'Output' NORMAL
            instruction = Instruction(instruction_order=0)
            action = OutputAction(order=0, port="NORMAL")
            instruction.add_apply_action(action)
            flow_entry.add_instruction(instruction)

            # --- Match Fields: Ethernet Type
            #                   Ethernet Source Address
            #                   Ethernet Destination Address
            #                   IPv4 Source Address
            #                   IPv4 Destination Address
            #                   IP Protocol Number
            #                   IP DSCP
            #                   IP ECN
            #                   TCP Source Port Number
            #                   TCP Destination Port Number
            #                   Input Port
            match = Match()
            match.set_eth_type(eth_type)
            if i == 0:
                match.set_ipv4_src(ipv4_src)
                match.set_ipv4_dst(ipv4_dst)
            else:
                match.set_ipv4_src(ipv4_dst)
                match.set_ipv4_dst(ipv4_src)

            flow_entry.add_match(match)
#.........这里部分代码省略.........
开发者ID:jebpublic,项目名称:brownBagApp2,代码行数:103,代码来源:brownBagApp2.py


注:本文中的pybvc.controller.controller.Controller.get_openflow_nodes_operational_list方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。