本文整理汇总了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 (">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
示例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)
示例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)
#.........这里部分代码省略.........