table_id = 0 flow_entry.set_flow_table_id(table_id) flow_id = 22 flow_entry.set_flow_id(flow_id) flow_entry.set_flow_priority(flow_priority = 1013) flow_entry.set_flow_cookie(cookie = 407) flow_entry.set_flow_cookie_mask(cookie_mask = 255) flow_entry.set_flow_hard_timeout(hard_timeout = 3400) flow_entry.set_flow_idle_timeout(idle_timeout = 3400) # --- Instruction: 'Apply-actions' # Actions: 'PushVlan' # 'SetField' # 'Output' instruction = Instruction(instruction_order = 0) action = PushVlanHeaderAction(order = 0) action.set_eth_type(eth_type = push_eth_type) instruction.add_apply_action(action) action = SetFieldAction(order = 1) action.set_vlan_id(vid = push_vlan_id) instruction.add_apply_action(action) action = OutputAction(order = 2, port = output_port) instruction.add_apply_action(action) flow_entry.add_instruction(instruction) # --- Match Fields: Ethernet Type # Ethernet Source Address # Ethernet Destination Address # Input Port match = Match() match.set_eth_type(eth_type)
table_id = 0 flow_entry.set_flow_table_id(table_id) flow_id = 21 flow_entry.set_flow_id(flow_id) flow_entry.set_flow_priority(flow_priority=1012) flow_entry.set_flow_cookie(cookie=401) flow_entry.set_flow_cookie_mask(cookie_mask=255) flow_entry.set_flow_hard_timeout(hard_timeout=1200) flow_entry.set_flow_idle_timeout(idle_timeout=3400) # --- Instruction: 'Apply-actions' # Actions: 'PushVlan' # 'SetField' # 'Output' instruction = Instruction(instruction_order=0) action = PushVlanHeaderAction(order=0) action.set_eth_type(eth_type=push_eth_type) instruction.add_apply_action(action) action = SetFieldAction(order=1) action.set_vlan_id(vid=push_vlan_id) instruction.add_apply_action(action) action = OutputAction(order=2, port=output_port) instruction.add_apply_action(action) flow_entry.add_instruction(instruction) # --- Match Fields: Ethernet Type # Ethernet Source Address # Ethernet Destination Address # Input Port match = Match() match.set_eth_type(eth_type)
flowEntries.append(flow_entry) # Sample flow entry flow_entry = FlowEntry() flow_entry.set_flow_cookie(1234) flow_entry.set_flow_table_id(flow_table_id) flow_entry.set_flow_id(flow_id) flow_id += 1 flow_entry.set_flow_hard_timeout(0) flow_entry.set_flow_idle_timeout(0) flow_entry.set_flow_priority(4000) instruction = Instruction(instruction_order=0) action = PushVlanHeaderAction(order=0) action.set_eth_type(ETH_TYPE_QINQ) instruction.add_apply_action(action) action = SetFieldAction(order=1) action.set_vlan_id(100) instruction.add_apply_action(action) action = PushVlanHeaderAction(order=2) action.set_eth_type(ETH_TYPE_DOT1Q) instruction.add_apply_action(action) action = SetFieldAction(order=3) action.set_vlan_id(998) instruction.add_apply_action(action)
flow_id = first_flow_id flow_entry1 = FlowEntry() flow_entry1.set_flow_table_id(table_id) flow_entry1.set_flow_name(flow_name = "[MLX1-A] Test flow (match:inport=110,arp;actions:push-QINQ-tag,mod_vlan=100,push-DOT1Q-tag,mod_vlan=998,output:111)") flow_entry1.set_flow_id(flow_id) flow_entry1.set_flow_hard_timeout(hard_timeout = 600) flow_entry1.set_flow_idle_timeout(idle_timeout = 300) flow_entry1.set_flow_priority(priority) flow_entry1.set_flow_cookie(cookie) flow_entry1.set_flow_cookie_mask(cookie_mask) instruction = Instruction(instruction_order = 0) action_order = 0 action = PushVlanHeaderAction(action_order) action.set_eth_type(qinq_eth_type) instruction.add_apply_action(action) action_order += 1 action = SetFieldAction(action_order) action.set_vlan_id(provider_vlan_id) instruction.add_apply_action(action) action_order += 1 action = PushVlanHeaderAction(action_order) action.set_eth_type(dot1q_eth_type) instruction.add_apply_action(action) action_order += 1 action = SetFieldAction(action_order)