本文整理汇总了Python中pybvc.openflowdev.ofswitch.Match.set_mpls_label方法的典型用法代码示例。如果您正苦于以下问题:Python Match.set_mpls_label方法的具体用法?Python Match.set_mpls_label怎么用?Python Match.set_mpls_label使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pybvc.openflowdev.ofswitch.Match
的用法示例。
在下文中一共展示了Match.set_mpls_label方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Instruction
# 需要导入模块: from pybvc.openflowdev.ofswitch import Match [as 别名]
# 或者: from pybvc.openflowdev.ofswitch.Match import set_mpls_label [as 别名]
# 'Output'
instruction = Instruction(instruction_order = 0)
action = SetFieldAction(order = 0)
action.set_mpls_label(new_mpls_label)
instruction.add_apply_action(action)
action = OutputAction(order = 1, port = 2)
instruction.add_apply_action(action)
flow_entry.add_instruction(instruction)
# --- Match Fields: Ethernet Type
# Input Port
# MPLS Label
match = Match()
match.set_eth_type(eth_type)
match.set_in_port(in_port)
match.set_mpls_label(mpls_label)
flow_entry.add_match(match)
print ("\n")
print ("<<< Flow to send:")
print flow_entry.get_payload()
time.sleep(rundelay)
result = ofswitch.add_modify_flow(flow_entry)
status = result.get_status()
if(status.eq(STATUS.OK) == True):
print ("<<< Flow successfully added to the Controller")
else:
print ("\n")
print ("!!!Demo terminated, reason: %s" % status.detailed())
exit(0)
示例2: of_demo_23
# 需要导入模块: from pybvc.openflowdev.ofswitch import Match [as 别名]
# 或者: from pybvc.openflowdev.ofswitch.Match import set_mpls_label [as 别名]
def of_demo_23():
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 23 Start")
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd)
ofswitch = OFSwitch(ctrl, nodeName)
# --- Flow Match: Ethernet Type
# Input Port
# IPv4 Destination Address
eth_type = ETH_TYPE_MPLS_UCAST
in_port = 13
mpls_label = 27
# --- Flow Actions: Set Field
# Output
new_mpls_label = 44
output_port = 14
print ("<<< 'Controller': %s, 'OpenFlow' switch: '%s'" %
(ctrlIpAddr, nodeName))
print "\n"
print ("<<< Set OpenFlow flow on the Controller")
print (" Match: Ethernet Type (%s)\n"
" Input Port (%s)\n"
" MPLS Label (%s)" %
(hex(eth_type), in_port, mpls_label))
print (" Action: Set Field (MPLS Label %s)\n"
" Output (Physical Port number %s)" %
(new_mpls_label, output_port))
time.sleep(rundelay)
flow_entry = FlowEntry()
table_id = 0
flow_id = 29
flow_entry.set_flow_table_id(table_id)
flow_entry.set_flow_id(flow_id)
flow_entry.set_flow_name(flow_name="Change MPLS Label")
flow_entry.set_flow_hard_timeout(hard_timeout=0)
flow_entry.set_flow_idle_timeout(idle_timeout=0)
flow_entry.set_flow_priority(flow_priority=1022)
flow_entry.set_flow_cookie(cookie=401)
flow_entry.set_flow_cookie_mask(cookie_mask=255)
# --- Instruction: 'Apply-actions'
# Actions: 'Set Field'
# 'Output'
instruction = Instruction(instruction_order=0)
action = SetFieldAction(order=0)
action.set_mpls_label(new_mpls_label)
instruction.add_apply_action(action)
action = OutputAction(order=1, port=2)
instruction.add_apply_action(action)
flow_entry.add_instruction(instruction)
# --- Match Fields: Ethernet Type
# Input Port
# MPLS Label
match = Match()
match.set_eth_type(eth_type)
match.set_in_port(in_port)
match.set_mpls_label(mpls_label)
flow_entry.add_match(match)
print ("\n")
print ("<<< Flow to send:")
print flow_entry.get_payload()
time.sleep(rundelay)
result = ofswitch.add_modify_flow(flow_entry)
status = result.get_status()
if(status.eq(STATUS.OK)):
print ("<<< Flow successfully added to the Controller")
else:
print ("\n")
print ("!!!Demo terminated, reason: %s" % status.detailed())
exit(0)
print ("\n")
print ("<<< Get configured flow from the Controller")
time.sleep(rundelay)
#.........这里部分代码省略.........
示例3: of_demo_42
# 需要导入模块: from pybvc.openflowdev.ofswitch import Match [as 别名]
# 或者: from pybvc.openflowdev.ofswitch.Match import set_mpls_label [as 别名]
def of_demo_42():
f = "cfg.yml"
d = {}
if load_dict_from_file(f, d) is False:
print ("Config file '%s' read error: " % f)
exit(0)
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 42 Start")
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd)
ofswitch = OFSwitch(ctrl, nodeName)
print ("<<< 'Controller': %s, 'OpenFlow' switch: '%s'" % (ctrlIpAddr, nodeName))
first_flow_id = 110
# ---------------------------------------------------
# First flow entry
# ---------------------------------------------------
table_id = 0
flow_id = first_flow_id
flow_name = "Modify MPLS TTL example1"
priority = 900
cookie = 1300
match_in_port = 3
match_eth_type = ETH_TYPE_MPLS_UCAST
match_mpls_label = 567
act_mod_mpls_ttl = 2
act_out_port = 112
print "\n"
print ("<<< Set OpenFlow flow on the Controller")
print (
" Match: Input Port (%s)\n"
" Ethernet Type (%s)\n"
" MPLS Label (%s)" % (match_in_port, hex(match_eth_type), match_mpls_label)
)
print (" Actions: Set MPLS TTL (%s)\n" " Output (%s)" % (act_mod_mpls_ttl, act_out_port))
time.sleep(rundelay)
# Allocate a placeholder for the Flow Entry
flow_entry1 = FlowEntry()
# Generic attributes of the Flow Entry
flow_entry1.set_flow_table_id(table_id)
flow_entry1.set_flow_name(flow_name)
flow_entry1.set_flow_id(flow_id)
flow_entry1.set_flow_cookie(cookie)
flow_entry1.set_flow_priority(priority)
flow_entry1.set_flow_hard_timeout(0)
flow_entry1.set_flow_idle_timeout(0)
# Instructions/Actions for the Flow Entry
instruction = Instruction(instruction_order=0)
action_order = 0
action = SetMplsTTLAction(action_order)
action.set_ttl(act_mod_mpls_ttl)
instruction.add_apply_action(action)
action_order += 1
action = OutputAction(action_order)
action.set_outport(act_out_port)
instruction.add_apply_action(action)
flow_entry1.add_instruction(instruction)
# Match Fields for the Flow Entry
match = Match()
match.set_in_port(match_in_port)
match.set_eth_type(match_eth_type)
match.set_mpls_label(match_mpls_label)
flow_entry1.add_match(match)
print ("\n")
print ("<<< Flow to send:")
print flow_entry1.get_payload()
time.sleep(rundelay)
result = ofswitch.add_modify_flow(flow_entry1)
status = result.get_status()
if status.eq(STATUS.OK):
print ("<<< Flow successfully added to the Controller")
else:
#.........这里部分代码省略.........