pybvc.openflowdev package¶
Submodules¶
pybvc.openflowdev.ofswitch module¶
@authors: Sergei Garbuzov @status: Development @version: 1.1.0
ofswitch.py: OpenFlow switch properties and methods
-
class
pybvc.openflowdev.ofswitch.ArpSrcHwAddrMatch¶ Bases:
pybvc.openflowdev.ofswitch.MatchARP source hardware address
-
class
pybvc.openflowdev.ofswitch.ArpTgtHwAddrMatch¶ Bases:
pybvc.openflowdev.ofswitch.MatchARP target hardware address
-
class
pybvc.openflowdev.ofswitch.BucketCounter(d)¶ Group Buckets statistics data. Helper class of the GroupStatistics class.
-
get_id()¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.CopyTTLInwardsAction(order=0)¶ Bases:
pybvc.openflowdev.ofswitch.ActionCopy the TTL from outermost to next-to-outermost header with TTL. Copy can be IP-to-IP, MPLS-to-MPLS, or MPLS-to-IP. (OpenFlow Switch Specification Version 1.3)
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.CopyTTLOutwardsAction(order=0)¶ Bases:
pybvc.openflowdev.ofswitch.ActionCopy the TTL from next-to-outermost to outermost header with TTL. Copy can be IP-to-IP, MPLS-to-MPLS, or IP-to-MPLS. (OpenFlow Switch Specification Version 1.3)
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.DecMplsTTLAction(order=0)¶ Bases:
pybvc.openflowdev.ofswitch.ActionDecrement the MPLS TTL. Only applies to packets with an existing MPLS shim header. (OpenFlow Switch Specification Version 1.3)
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.DecNwTTLAction(order=0)¶ Bases:
pybvc.openflowdev.ofswitch.ActionDecrement the IPv4 TTL or IPv6 Hop Limit field and update the IP checksum. Only applies to IPv4 and IPv6 packets. (OpenFlow Switch Specification Version 1.3)
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.DropAction(order=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionThere is no explicit action to represent drops. Instead, packets whose action sets have no output actions should be dropped. This result could come from empty instruction sets or empty action buckets in the processing pipeline, or after executing a Clear-Actions instruction. (OpenFlow Switch Specification Version 1.0 and 1.3)
-
set_order(order)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.EthernetMatch(d=None)¶ Bases:
pybvc.openflowdev.ofswitch.MatchEthernet specific match fields
-
get_dst()¶
-
get_src()¶
-
get_type()¶
-
set_dst(eth_dst)¶
-
set_src(eth_src)¶
-
set_type(eth_type)¶
-
-
class
pybvc.openflowdev.ofswitch.FlowEntry(flow_json=None, flow_dict=None)¶ Bases:
objectClass for creating and interacting with OpenFlow flows
-
add_instruction(instruction)¶
-
add_instructions(instructions)¶
-
add_match(match)¶
-
get_bytes_cnt()¶
-
get_duration()¶
-
get_flow_barrier(barrier)¶
-
get_flow_hard_timeout()¶
-
get_flow_id()¶
-
get_flow_idle_timeout()¶
-
get_flow_install_hw()¶
-
get_flow_name()¶
-
get_flow_priority()¶
-
get_flow_strict()¶
-
get_flow_table_id()¶
-
get_instructions()¶
-
get_match_fields()¶
-
get_payload()¶ Return FlowEntry as a payload for the HTTP request body
-
get_pkts_cnt()¶
-
set_flow_barrier(barrier)¶
-
set_flow_hard_timeout(hard_timeout)¶
-
set_flow_id(flow_id)¶
-
set_flow_idle_timeout(idle_timeout)¶
-
set_flow_install_hw(install_hw)¶
-
set_flow_name(flow_name)¶
-
set_flow_priority(flow_priority)¶
-
set_flow_strict(strict)¶
-
set_flow_table_id(table_id)¶
-
to_json()¶ Return FlowEntry as JSON
-
to_ofp_oxm_syntax()¶
-
to_yang_json(strip=False)¶
-
-
class
pybvc.openflowdev.ofswitch.GroupAction(order=None, group=None, group_id=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionProcess the packet through the specified group. The exact interpretation depends on group type. (OpenFlow Switch Specification Version 1.3)
-
get_group_id()¶
-
set_group(group)¶
-
set_group_id(group_id)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.GroupBucket(bucket_id=None, bucket_dict=None)¶ Helper class for representing ‘buckets’ property of the GroupEntry class
-
add_action(action)¶
-
create_action_from_dict(d)¶
-
get_actions()¶
-
get_id()¶
-
get_watch_group()¶
-
get_watch_port()¶
-
get_weight()¶
-
set_watch_group(group_id)¶
-
set_watch_port(port)¶
-
set_weight(weight)¶
-
to_json()¶ Return this object represented as JSON
-
to_ofp_oxm_syntax(skip_garbage=False)¶ Controller returns value of 2**32-1 (4294967295) for unassigned counters, ‘skip_garbage’ flag set True tells to ignore them
-
to_string()¶ Returns string representation of this object.
-
-
class
pybvc.openflowdev.ofswitch.GroupDescription(stats)¶ Description of an OpenFlow Group.
-
add_bucket(bucket)¶
-
get_buckets()¶
-
get_id()¶
-
to_json()¶ Return this object as JSON
-
to_ofp_oxm_syntax()¶
-
to_yang_json(strip=False)¶
-
-
class
pybvc.openflowdev.ofswitch.GroupEntry(group_id=None, group_type=None, group_dict=None)¶ Class that represents a group entry in the OpenFlow Group Table
-
add_bucket(bucket)¶
-
get_barrier(barrier)¶
-
get_buckets()¶
-
get_container_name()¶
-
get_group_id()¶
-
get_group_name()¶
-
get_group_type()¶
-
get_payload()¶ Return GroupEntry as a payload for the HTTP request body
-
set_barrier(barrier)¶
-
set_container_name(name)¶
-
set_group_id(group_id)¶
-
set_group_name(name)¶
-
set_group_type(group_type)¶
-
to_json()¶ Return GroupEntry represented as JSON object
-
to_ofp_oxm_syntax()¶
-
to_string()¶ Returns string representation of this object.
-
to_yang_json(strip=False)¶
-
-
class
pybvc.openflowdev.ofswitch.GroupFeatures(features)¶ Represents Group Features of an OpenFlow device (group types, max number of groups for each type, group capabilities and group supported actions).
-
actions_bitmap= {0: 'OUTPUT', 1: 'SET_VLAN_VID', 2: 'SET_VLAN_PCP', 3: 'STRIP_VLAN', 4: 'SET_DL_SRC', 5: 'SET_DL_DST', 6: 'SET_NW_SRC', 7: 'SET_NW_DST', 8: 'SET_NW_TOS', 9: 'SET_TP_SRC', 10: 'SET_TP_DST', 11: 'COPY-TTL-OUT', 12: 'COPY-TTL-IN', 15: 'SET-MPLS-TTL', 16: 'DEC-MPLS-TTL', 17: 'PUSH-VLAN', 18: 'POP-VLAN', 19: 'PUSH-MPLS', 20: 'POP-MPLS', 21: 'SET-QUEUE', 22: 'GROUP', 23: 'SET-NW-TTL', 24: 'DEC-NW-TTL', 25: 'SET-FIELD', 26: 'PUSH-PBB', 27: 'POP-PBB'}¶
-
actions_bitmap_size= 28¶
-
capabilities_map= {'select-liveness': 2, 'chaining-checks': 8, 'select-weight': 1, 'chaining': 4}¶
-
get_actions()¶
-
get_capabilities()¶
-
get_max_groups()¶
-
get_types()¶
-
types_map= {'ff': 3, 'all': 0, 'indirect': 2, 'select': 1}¶
-
-
class
pybvc.openflowdev.ofswitch.GroupInfo(group_info)¶ Represents current state of an OpenFlow group entry in the Controller’s operational data store. (OpenFlow switch context specific data)
-
add_bucket(bucket)¶
-
get_buckets()¶
-
get_description()¶
-
get_id()¶
-
get_statistics()¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.GroupStatistics(stats)¶ Statistics data for an OpenFlow Group
-
add_bucket(bucket)¶
-
get_buckets()¶
-
get_duration()¶
-
get_group_id()¶
-
to_json()¶ Return this object as JSON
-
to_ofp_oxm_syntax()¶
-
to_yang_json(strip=False)¶
-
-
class
pybvc.openflowdev.ofswitch.IcmpMatch(d=None)¶ Bases:
pybvc.openflowdev.ofswitch.MatchICMPv4 specific match fields
-
get_code()¶
-
get_type()¶
-
set_code(icmp_code)¶
-
set_type(icmp_type)¶
-
-
class
pybvc.openflowdev.ofswitch.IcmpV6Match(d=None)¶ Bases:
pybvc.openflowdev.ofswitch.MatchICMPv6 specific match fields
-
get_code()¶
-
get_type()¶
-
set_code(icmpv6_code)¶
-
set_type(icmpv6_type)¶
-
-
class
pybvc.openflowdev.ofswitch.Instruction(instruction_order=None, d=None)¶ Class representing an OpenFlow flow instruction
-
add_apply_action(action)¶
-
create_action_from_dict(d)¶
-
get_apply_actions()¶
-
is_apply_actions_type()¶
-
-
class
pybvc.openflowdev.ofswitch.Instructions(d=None)¶ ‘Class representing OpenFlow flow instructions set
-
add_instruction(instruction)¶
-
get_instructions()¶
-
-
class
pybvc.openflowdev.ofswitch.IpMatch(d=None)¶ Bases:
pybvc.openflowdev.ofswitch.MatchIPv4 protocol specific match fields
-
get_ip_dscp()¶
-
get_ip_ecn()¶
-
get_ip_proto()¶
-
set_ip_dscp(ip_dscp)¶
-
set_ip_ecn(ip_ecn)¶
-
set_ip_proto(ip_proto)¶
-
-
class
pybvc.openflowdev.ofswitch.Ipv6ExtHdr(exthdr=None, exthdr_mask=None)¶ Bases:
pybvc.openflowdev.ofswitch.MatchIPv6 Extension Header pseudo-field
-
get_exthdr()¶
-
get_exthdr_mask()¶
-
set_exthdr(exthdr, exthdr_mask=None)¶
-
set_exthdr_mask(exthdr_mask)¶
-
-
class
pybvc.openflowdev.ofswitch.Ipv6Label(flabel=None, flabel_mask=None)¶ Bases:
pybvc.openflowdev.ofswitch.MatchIPv6 Flow Label
-
get_flabel()¶
-
get_flabel_mask()¶
-
set_flabel(flabel, flabel_mask=None)¶
-
set_flabel_mask(flabel_mask)¶
-
-
class
pybvc.openflowdev.ofswitch.Match(d=None)¶ Bases:
objectClass that represents OpenFlow flow matching attributes
-
get_arp_opcode()¶
-
get_arp_src_hw_address()¶
-
get_arp_src_transport_address()¶
-
get_arp_tgt_hw_address()¶
-
get_arp_tgt_transport_address()¶
-
get_eth_dst()¶
-
get_eth_src()¶
-
get_eth_type()¶
-
get_icmp4_type()¶
-
get_icmpv4_code()¶
-
get_icmpv6_code()¶
-
get_icmpv6_type()¶
-
get_in_phy_port()¶
-
get_in_port()¶
-
get_ip_dscp()¶
-
get_ip_ecn()¶
-
get_ip_proto()¶
-
get_ipv4_dst()¶
-
get_ipv4_src()¶
-
get_ipv6_dst()¶
-
get_ipv6_exh_hdr()¶
-
get_ipv6_flabel()¶
-
get_ipv6_src()¶
-
get_metadata()¶
-
get_metadata_mask()¶
-
get_mpls_bos()¶
-
get_mpls_label()¶
-
get_mpls_tc()¶
-
get_sctp_dst()¶
-
get_sctp_src()¶
-
get_tcp_dst()¶
-
get_tcp_src()¶
-
get_tunnel_id()¶
-
get_udp_dst()¶
-
get_udp_src()¶
-
get_vlan_id()¶
-
get_vlan_pcp()¶
-
set_arp_opcode(arp_opcode)¶
-
set_arp_src_hw_address(arp_src_hw_addr)¶
-
set_arp_src_transport_address(arp_src_tp_addr)¶
-
set_arp_tgt_hw_address(arp_tgt_hw_addr)¶
-
set_arp_tgt_transport_address(arp_tgt_tp_addr)¶
-
set_eth_dst(eth_dst)¶
-
set_eth_src(eth_src)¶
-
set_eth_type(eth_type)¶
-
set_icmpv4_code(icmpv4_code)¶
-
set_icmpv4_type(icmpv4_type)¶
-
set_icmpv6_code(icmpv6_code)¶
-
set_icmpv6_type(icmpv6_type)¶
-
set_in_phy_port(in_phy_port)¶
-
set_in_port(in_port)¶
-
set_ip_dscp(ip_dscp)¶
-
set_ip_ecn(ip_ecn)¶
-
set_ip_proto(ip_proto)¶
-
set_ipv4_dst(ipv4_dst)¶
-
set_ipv4_src(ipv4_src)¶
-
set_ipv6_dst(ipv6_dst)¶
-
set_ipv6_exh_hdr(ipv6_exthdr)¶
-
set_ipv6_flabel(ipv6_flabel)¶
-
set_ipv6_src(ipv6_src)¶
-
set_metadata(metadata)¶
-
set_metadata_mask(metadata_mask)¶
-
set_mpls_bos(mpls_bos)¶
-
set_mpls_label(mpls_label)¶
-
set_mpls_tc(mpls_tc)¶
-
set_sctp_dst(sctp_port)¶
-
set_sctp_src(sctp_port)¶
-
set_tcp_dst(tcp_port)¶
-
set_tcp_src(tcp_port)¶
-
set_tunnel_id(tunnel_id)¶
-
set_udp_dst(udp_port)¶
-
set_udp_src(udp_port)¶
-
set_vlan_id(vlan_id)¶
-
set_vlan_pcp(vlan_pcp)¶
-
-
class
pybvc.openflowdev.ofswitch.Metadata¶ Bases:
pybvc.openflowdev.ofswitch.MatchTable metadata. Used to pass information between tables
-
get_metadata()¶
-
get_metadata_mask()¶
-
set_metadata(metadata)¶
-
set_metadata_mask(metadata_mask)¶
-
-
class
pybvc.openflowdev.ofswitch.MeterFeatures(features)¶ Represents Metering Features of an OpenFlow device.
-
capabilities_map= {'stats': 8, 'pktps': 2, 'kbps': 1, 'burst': 4}¶
-
get_band_types()¶
-
get_capabilities()¶
-
get_max_bands()¶
-
get_max_colors()¶
-
get_max_meters()¶
-
types_map= {'experimenter': 65535, 'drop': 1, 'dscp-remark': 2}¶
-
-
class
pybvc.openflowdev.ofswitch.OFSwitch(ctrl=None, name=None, dpid=None)¶ Bases:
pybvc.controller.openflownode.OpenflowNodeClass that represents an instance of ‘OpenFlow Switch’ (OpenFlow capable device).
-
add_modify_flow(flow_entry)¶
-
add_modify_flow_json(table_id, flow_id, flow_json)¶
-
add_modify_group(group_entry)¶ Create a new or modify an existing group in the configuration data store of the Controller
-
add_modify_group_json(group_id, group_json)¶ Create a new or modify an existing group in the configuration data store of the Controller
-
delete_flow(table_id, flow_id)¶
-
delete_flows(flow_table_id)¶
-
delete_group(group_id)¶ Remove given group from the configuration data store of the Controller
-
get_FlowEntries(tableid, operational=True)¶
-
get_FlowEntry(table_id, flow_id, operational=True)¶
-
get_GroupEntries(operational=True)¶
-
get_GroupEntry(group_id, operational=True)¶
-
get_configured_FlowEntries(flow_table_id)¶
-
get_configured_FlowEntry(tableid, flowid)¶
-
get_configured_GroupEntries()¶
-
get_configured_GroupEntry(group_id)¶
-
get_configured_flow(tableid, flowid)¶
-
get_configured_flows(tableid)¶
-
get_configured_group(group_id, decode_object=False)¶ Retrieve group information from the Controller’s configuration data store
-
get_configured_group_ids()¶ Retrieve list of group IDs in the configuration data store of the Controller
-
get_configured_groups(decode_object=False)¶
-
get_features_info()¶
-
get_flow(tableid, flowid, operational=True)¶
-
get_flows(tableid, operational=True)¶
-
get_group(group_id, operational=True, decode_object=False)¶ Retrieve group information from the Controller, (refer to operational or configuration data store)
-
get_group_description(group_id, decode_object=False)¶ Retrieve description of the given group (along with the group’s bucket actions) from the Controller’s operational data store
-
get_group_features(decode_object=False)¶ Retrieve from the Controller’s operational data store information about group features supported by the OpenFlow switch
-
get_group_ids(operational=True)¶ Retrieve list of group IDs available on the Controller (refer to operational or configuration data store)
-
get_group_statistics(group_id, decode_object=False)¶ Retrieve statistics for the given group in the Controller’s operational data store
-
get_groups(operational=True)¶
-
get_groups_description(decode_object=False)¶ Retrieve description of all groups (along with the group’s bucket actions) from the Controller’s operational data store
-
get_groups_statistics(decode_object=False)¶ Retrieve statistics for all groups in the Controller’s operational data store
-
get_meter_features(decode_object=False)¶ Retrieve from the Controller’s operational data store information about metering features supported by the OpenFlow switch
-
get_operational_FlowEntries(flow_table_id)¶
-
get_operational_FlowEntry(tableid, flowid)¶
-
get_operational_GroupEntries()¶
-
get_operational_GroupEntry(group_id)¶
-
get_operational_flow(tableid, flowid)¶
-
get_operational_flows(tableid)¶
-
get_operational_group(group_id, decode_object=False)¶ Retrieve group information from the Controller’s operational data store
-
get_operational_group_ids()¶ Retrieve list of group IDs in the operational data store of the Controller
-
get_port_brief_info(portnum)¶
-
get_port_detail_info(portnum)¶
-
get_port_queue_stats(port_num, queue_id, decode_obj=False)¶
-
get_port_queues_stats(port_num, decode_obj=False)¶
-
get_ports_brief_info()¶
-
get_ports_list()¶
-
get_switch_info()¶
-
to_json()¶ Returns JSON representation of this object.
-
to_string()¶ Returns string representation of this object.
-
-
class
pybvc.openflowdev.ofswitch.OutputAction(order=None, port=None, max_len=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionThe Output action forwards a packet to a specified OpenFlow port. OpenFlow switches must support forwarding to physical ports, switch-defined logical ports and the required reserved ports. (OpenFlow Switch Specification Version 1.0 and 1.3)
-
get_max_len()¶
-
get_outport()¶
-
set_max_len(max_len)¶
-
set_order(order)¶
-
set_outport(port)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.Pbb¶ Bases:
pybvc.openflowdev.ofswitch.ProtocolMatchFieldsThe I-SID in the first PBB service instance tag
-
set_pbb_isid(pbb_isid)¶
-
set_pbb_mask(pbb_mask)¶
-
-
class
pybvc.openflowdev.ofswitch.PopMplsHeaderAction(order=0, ethernet_type=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionPop the outer-most MPLS tag or shim header from the packet. The ‘ethernet_type’ is used as the Ethernet Type for the resulting packet (Ethernet Type for the MPLS payload). (OpenFlow Switch Specification Version 1.3)
-
get_eth_type()¶
-
set_eth_type(eth_type)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.PopPBBHeaderAction(order=0)¶ Bases:
pybvc.openflowdev.ofswitch.ActionPop the outer-most PBB service instance header (I-TAG TCI) from the packet PBB - Provider Backbone Bridges is an Ethernet data-plane technology . (also known as MAC-in-MAC) that involves encapsulating an . Ethernet datagram inside another one with new source and . destination addresses. (OpenFlow Switch Specification Version 1.3)
-
class
pybvc.openflowdev.ofswitch.PopVlanHeaderAction(order=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionPop the outer-most VLAN header from the packet. (OpenFlow Switch Specification Version 1.3)
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.ProtocolMatchFields(d=None)¶ Bases:
pybvc.openflowdev.ofswitch.MatchProtocol match fields
-
get_mpls_bos()¶
-
get_mpls_label()¶
-
get_mpls_tc()¶
-
set_mpls_bos(mpls_bos)¶
-
set_mpls_label(mpls_label)¶
-
set_mpls_tc(mpls_tc)¶
-
-
class
pybvc.openflowdev.ofswitch.PushMplsHeaderAction(order=None, ethernet_type=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionPush a new MPLS shim header onto the packet. The ‘ethernet_type’ is used as the Ethernet Type for the tag, only 0x8847 or 0x8848 values should be used. (OpenFlow Switch Specification Version 1.3)
-
get_eth_type()¶
-
set_eth_type(eth_type)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.PushPBBHeaderAction(order=0, ethernet_type=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionPush a new PBB service instance header (I-TAG TCI) onto the packet. The ‘ethernet_type’ is used as the Ethernet Type for the tag. Only Ethernet Type 0x88E7 should be used PBB - Provider Backbone Bridges is an Ethernet data-plane technology . (also known as MAC-in-MAC) that involves encapsulating an . Ethernet datagram inside another one with new source and . destination addresses. (OpenFlow Switch Specification Version 1.3)
-
set_eth_type(ethernet_type)¶
-
-
class
pybvc.openflowdev.ofswitch.PushVlanHeaderAction(order=None, eth_type=None, tag=None, pcp=None, cfi=None, vid=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionPush a new VLAN header onto the packet. The ‘ethernet_type’ is used as the Ethernet Type for the tag, only 0x8100 or 0x88a8 values should be used. (OpenFlow Switch Specification Version 1.3)
-
get_eth_type()¶
-
set_cfi(cfi)¶
-
set_eth_type(eth_type)¶
-
set_order(order)¶
-
set_pcp(pcp)¶
-
set_tag(tag)¶
-
set_vid(vid)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.QueueStats(queue_id, stats)¶ Queue statistics for a port
-
queue_id()¶
-
time_alive()¶
-
to_json()¶ Return this object as JSON
-
tx_bytes()¶
-
tx_errs()¶
-
tx_pkts()¶
-
-
class
pybvc.openflowdev.ofswitch.SetDlDstAction(order=None, mac_addr=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionModify Ethernet destination MAC address. Replace the existing Ethernet destination MAC address with the new value. (OpenFlow Switch Specification Version 1.0)
-
get_dl_dst()¶
-
set_dl_dst(mac_addr)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetDlSrcAction(order=None, mac_addr=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionModify Ethernet source MAC address. Replace the existing Ethernet source MAC address with the new value. (OpenFlow Switch Specification Version 1.0)
-
get_dl_src()¶
-
set_dl_src(mac_addr)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetFieldAction(order=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionThe Extensible set_field action reuses the OXM encoding defined for matches, and enables to rewrite any header field in a single action. This allows any new match field, including experimenter fields, to be available for rewrite. The various Set-Field actions are identified by their field type and modify the values of respective header fields in the packet. While not strictly required, the support of rewriting various header fields using Set-Field actions greatly increase the usefulness of an OpenFlow implementation. To aid integration with existing networks, we suggest that VLAN modification actions be supported. Set-Field actions should always be applied to the outermost-possible header (e.g. a ‘Set VLAN ID’ action always sets the ID of the outermost VLAN tag), unless the field type specifies otherwise. (OpenFlow Switch Specification Version 1.3)
-
get_eth_dst()¶
-
get_eth_src()¶
-
get_ip_dscp()¶
-
get_ip_ecn()¶
-
get_ipv4_dst()¶
-
get_ipv4_src()¶
-
get_mpls_label()¶
-
get_tcp_dst()¶
-
get_tcp_src()¶
-
get_udp_dst()¶
-
get_udp_src()¶
-
get_vlan_id()¶
-
get_vlan_pcp()¶
-
set_eth_dst(mac_addr)¶
-
set_eth_src(mac_addr)¶
-
set_ip_dscp(dscp)¶
-
set_ip_ecn(ecn)¶
-
set_ipv4_dst(ipv4_addr)¶
-
set_ipv4_src(ipv4_addr)¶
-
set_mpls_label(mpls_label)¶
-
set_tcp_dst(tcp_port)¶
-
set_tcp_src(tcp_port)¶
-
set_udp_dst(udp_port)¶
-
set_udp_src(udp_port)¶
-
set_vlan_id(vid)¶
-
set_vlan_pcp(vlan_pcp)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetMplsTTLAction(order=0, ttl=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionReplace the existing MPLS TTL. Only applies to packets with an existing MPLS shim header. (OpenFlow Switch Specification Version 1.3)
-
get_ttl()¶
-
set_ttl(ttl)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetNwDstAction(order=None, ip_addr=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionModify IPv4 destination address. Replace the existing IP destination address with new value and update the IP checksum (and TCP/UDP checksum if applicable). This action is only applicable to IPv4 packets. (OpenFlow Switch Specification Version 1.0)
-
get_nw_dst()¶
-
set_nw_dst(ip_addr)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetNwSrcAction(order=None, ip_addr=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionModify IPv4 source address. Replace the existing IP source address with new value and update the IP checksum (and TCP/UDP checksum if applicable). This action is only applicable to IPv4 packets. (OpenFlow Switch Specification Version 1.0)
-
get_nw_src()¶
-
set_nw_src(ip_addr)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetNwTTLAction(order=0, ttl=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionReplace the existing IPv4 TTL or IPv6 Hop Limit and update the IP checksum. Only applies to IPv4 and IPv6 packets. (OpenFlow Switch Specification Version 1.3)
-
get_ttl()¶
-
set_ttl(ttl)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetNwTosAction(order=None, tos=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionModify IPv4 ToS bits. Replace the existing IP ToS field. This action is only applied to IPv4 packets. (OpenFlow Switch Specification Version 1.0)
-
get_tos()¶
-
set_tos(tos)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetQueueAction(order=None, queue=None, queue_id=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionThe set-queue action sets the queue id for a packet. When the packet is forwarded to a port using the output action, the queue id determines which queue attached to this port is used for scheduling and forwarding the packet. Forwarding behavior is dictated by the configuration of the queue and is used to provide basic Quality-of-Service (QoS) support. (OpenFlow Switch Specification Version 1.3)
-
get_queue_id()¶
-
set_gueue_id(queue_id)¶
-
set_queue(queue)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetTpDstAction(order=None, port=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionModify transport destination port. Replace the existing TCP/UDP destination port with new value and update the TCP/UDP checksum. This action is only applicable to TCP and UDP packets. (OpenFlow Switch Specification Version 1.0)
-
get_tp_dst()¶
-
set_tp_dst(port)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetTpSrcAction(order=None, port=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionModify transport source port. Replace the existing TCP/UDP source port with new value and update the TCP/UDP checksum. This action is only applicable to TCP and UDP packets. (OpenFlow Switch Specification Version 1.0)
-
get_tp_src()¶
-
set_tp_src(port)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetVlanIdAction(order=None, vid=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionSet the 802.1q VLAN ID. If no VLAN is present, a new header is added with the specified VLAN ID and priority of zero. If a VLAN header already exists, the VLAN ID is replaced with the specified value. (OpenFlow Switch Specification Version 1.0)
-
get_vid()¶
-
set_vid(vid)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.SetVlanPCPAction(order=None, vlan_pcp=None, d=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionSet VLAN priority. If no VLAN is present, a new header is added with the specified priority and a VLAN ID of zero. If a VLAN header already exists, the priority field is replaced with the specified value. (OpenFlow Switch Specification Version 1.0)
-
get_vlan_pcp()¶
-
set_vlan_pcp(vlan_pcp)¶
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.StripVlanAction(order=None)¶ Bases:
pybvc.openflowdev.ofswitch.ActionStrip VLAN header if present. (OpenFlow Switch Specification Version 1.0)
-
to_ofp_oxm_syntax()¶
-
-
class
pybvc.openflowdev.ofswitch.Tunnel¶ Bases:
pybvc.openflowdev.ofswitch.MatchMetadata associated with a logical port
-
get_id()¶
-
set_id(tunnel_id)¶
-
-
class
pybvc.openflowdev.ofswitch.VlanId(d=None)¶ Bases:
pybvc.openflowdev.ofswitch.VlanMatchHelper subclass of VlanMatch class to help in serialization of VLAN ID information encoded in match rules of a flow entry
-
get_vid()¶
-
set_vid(vid)¶
-