os_ken.ofproto.ofproto_v1_0_parser.
NXActionSetQueue
(queue_id, type_=None, len_=None, vendor=None, subtype=None)¶Set queue action
This action sets the queue that should be used to queue when packets are output.
And equivalent to the followings action of ovs-ofctl command.
set_queue:queue |
Attribute | Description |
---|---|
queue_id | Queue ID for the packets |
Note
This actions is supported by
OFPActionSetQueue
in OpenFlow1.2 or later.
Example:
actions += [parser.NXActionSetQueue(queue_id=10)]
os_ken.ofproto.ofproto_v1_0_parser.
NXActionDecTtl
(type_=None, len_=None, vendor=None, subtype=None)¶Decrement IP TTL action
This action decrements TTL of IPv4 packet or hop limit of IPv6 packet.
And equivalent to the followings action of ovs-ofctl command.
dec_ttl |
Note
This actions is supported by
OFPActionDecNwTtl
in OpenFlow1.2 or later.
Example:
actions += [parser.NXActionDecTtl()]
os_ken.ofproto.ofproto_v1_0_parser.
NXActionPushMpls
(ethertype, type_=None, len_=None, vendor=None, subtype=None)¶Push MPLS action
This action pushes a new MPLS header to the packet.
And equivalent to the followings action of ovs-ofctl command.
push_mpls:ethertype |
Attribute | Description |
---|---|
ethertype | Ether type(The value must be either 0x8847 or 0x8848) |
Note
This actions is supported by
OFPActionPushMpls
in OpenFlow1.2 or later.
Example:
match = parser.OFPMatch(dl_type=0x0800)
actions += [parser.NXActionPushMpls(ethertype=0x8847)]
os_ken.ofproto.ofproto_v1_0_parser.
NXActionPopMpls
(ethertype, type_=None, len_=None, vendor=None, subtype=None)¶Pop MPLS action
This action pops the MPLS header from the packet.
And equivalent to the followings action of ovs-ofctl command.
pop_mpls:ethertype |
Attribute | Description |
---|---|
ethertype | Ether type |
Note
This actions is supported by
OFPActionPopMpls
in OpenFlow1.2 or later.
Example:
match = parser.OFPMatch(dl_type=0x8847)
actions += [parser.NXActionPushMpls(ethertype=0x0800)]
os_ken.ofproto.ofproto_v1_0_parser.
NXActionSetMplsTtl
(ttl, type_=None, len_=None, vendor=None, subtype=None)¶Set MPLS TTL action
This action sets the MPLS TTL.
And equivalent to the followings action of ovs-ofctl command.
set_mpls_ttl:ttl |
Attribute | Description |
---|---|
ttl | MPLS TTL |
Note
This actions is supported by
OFPActionSetMplsTtl
in OpenFlow1.2 or later.
Example:
actions += [parser.NXActionSetMplsTil(ttl=128)]
os_ken.ofproto.ofproto_v1_0_parser.
NXActionDecMplsTtl
(type_=None, len_=None, vendor=None, subtype=None)¶Decrement MPLS TTL action
This action decrements the MPLS TTL.
And equivalent to the followings action of ovs-ofctl command.
dec_mpls_ttl |
Note
This actions is supported by
OFPActionDecMplsTtl
in OpenFlow1.2 or later.
Example:
actions += [parser.NXActionDecMplsTil()]
os_ken.ofproto.ofproto_v1_0_parser.
NXActionSetMplsLabel
(label, type_=None, len_=None, vendor=None, subtype=None)¶Set MPLS Lavel action
This action sets the MPLS Label.
And equivalent to the followings action of ovs-ofctl command.
set_mpls_label:label |
Attribute | Description |
---|---|
label | MPLS Label |
Note
This actions is supported by
OFPActionSetField(mpls_label=label)
in OpenFlow1.2 or later.
Example:
actions += [parser.NXActionSetMplsLabel(label=0x10)]
os_ken.ofproto.ofproto_v1_0_parser.
NXActionSetMplsTc
(tc, type_=None, len_=None, vendor=None, subtype=None)¶Set MPLS Tc action
This action sets the MPLS Tc.
And equivalent to the followings action of ovs-ofctl command.
set_mpls_tc:tc |
Attribute | Description |
---|---|
tc | MPLS Tc |
Note
This actions is supported by
OFPActionSetField(mpls_label=tc)
in OpenFlow1.2 or later.
Example:
actions += [parser.NXActionSetMplsLabel(tc=0x10)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionPopQueue
(type_=None, len_=None, experimenter=None, subtype=None)¶Pop queue action
This action restors the queue to the value it was before any set_queue actions were applied.
And equivalent to the followings action of ovs-ofctl command.
pop_queue |
Example:
actions += [parser.NXActionPopQueue()]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionRegLoad
(ofs_nbits, dst, value, type_=None, len_=None, experimenter=None, subtype=None)¶Load literal value action
This action loads a literal value into a field or part of a field.
And equivalent to the followings action of ovs-ofctl command.
load:value->dst[start..end] |
Attribute | Description |
---|---|
ofs_nbits | Start and End for the OXM/NXM field.
Setting method refer to the nicira_ext.ofs_nbits |
dst | OXM/NXM header for destination field |
value | OXM/NXM value to be loaded |
Example:
actions += [parser.NXActionRegLoad(
ofs_nbits=nicira_ext.ofs_nbits(4, 31),
dst="eth_dst",
value=0x112233)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionRegLoad2
(dst, value, mask=None, type_=None, len_=None, experimenter=None, subtype=None)¶Load literal value action
This action loads a literal value into a field or part of a field.
And equivalent to the followings action of ovs-ofctl command.
set_field:value[/mask]->dst |
Attribute | Description |
---|---|
value | OXM/NXM value to be loaded |
mask | Mask for destination field |
dst | OXM/NXM header for destination field |
Example:
actions += [parser.NXActionRegLoad2(dst="tun_ipv4_src",
value="192.168.10.0",
mask="255.255.255.0")]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionNote
(note, type_=None, len_=None, experimenter=None, subtype=None)¶Note action
This action does nothing at all.
And equivalent to the followings action of ovs-ofctl command.
note:[hh].. |
Attribute | Description |
---|---|
note | A list of integer type values |
Example:
actions += [parser.NXActionNote(note=[0xaa,0xbb,0xcc,0xdd])]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionSetTunnel
(tun_id, type_=None, len_=None, experimenter=None, subtype=None)¶Set Tunnel action
This action sets the identifier (such as GRE) to the specified id.
And equivalent to the followings action of ovs-ofctl command.
Note
This actions is supported by
OFPActionSetField
in OpenFlow1.2 or later.
set_tunnel:id |
Attribute | Description |
---|---|
tun_id | Tunnel ID(32bits) |
Example:
actions += [parser.NXActionSetTunnel(tun_id=0xa)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionSetTunnel64
(tun_id, type_=None, len_=None, experimenter=None, subtype=None)¶Set Tunnel action
This action outputs to a port that encapsulates the packet in a tunnel.
And equivalent to the followings action of ovs-ofctl command.
Note
This actions is supported by
OFPActionSetField
in OpenFlow1.2 or later.
set_tunnel64:id |
Attribute | Description |
---|---|
tun_id | Tunnel ID(64bits) |
Example:
actions += [parser.NXActionSetTunnel64(tun_id=0xa)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionRegMove
(src_field, dst_field, n_bits, src_ofs=0, dst_ofs=0, type_=None, len_=None, experimenter=None, subtype=None)¶Move register action
This action copies the src to dst.
And equivalent to the followings action of ovs-ofctl command.
move:src[start..end]->dst[start..end ] |
Attribute | Description |
---|---|
src_field | OXM/NXM header for source field |
dst_field | OXM/NXM header for destination field |
n_bits | Number of bits |
src_ofs | Starting bit offset in source |
dst_ofs | Starting bit offset in destination |
Caution
Example:
actions += [parser.NXActionRegMove(src_field="reg0",
dst_field="reg1",
n_bits=5,
src_ofs=0
dst_ofs=10)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionResubmit
(in_port=65528, type_=None, len_=None, experimenter=None, subtype=None)¶Resubmit action
This action searches one of the switch's flow tables.
And equivalent to the followings action of ovs-ofctl command.
resubmit:port |
Attribute | Description |
---|---|
in_port | New in_port for checking flow table |
Example:
actions += [parser.NXActionResubmit(in_port=8080)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionResubmitTable
(in_port=65528, table_id=255, type_=None, len_=None, experimenter=None, subtype=None)¶Resubmit action
This action searches one of the switch's flow tables.
And equivalent to the followings action of ovs-ofctl command.
resubmit([port],[table]) |
Attribute | Description |
---|---|
in_port | New in_port for checking flow table |
table_id | Checking flow tables |
Example:
actions += [parser.NXActionResubmit(in_port=8080,
table_id=10)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionOutputReg
(ofs_nbits, src, max_len, type_=None, len_=None, experimenter=None, subtype=None)¶Add output action
This action outputs the packet to the OpenFlow port number read from src.
And equivalent to the followings action of ovs-ofctl command.
output:src[start...end] |
Attribute | Description |
---|---|
ofs_nbits | Start and End for the OXM/NXM field.
Setting method refer to the nicira_ext.ofs_nbits |
src | OXM/NXM header for source field |
max_len | Max length to send to controller |
Example:
actions += [parser.NXActionOutputReg(
ofs_nbits=nicira_ext.ofs_nbits(4, 31),
src="reg0",
max_len=1024)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionOutputReg2
(ofs_nbits, src, max_len, type_=None, len_=None, experimenter=None, subtype=None)¶Add output action
This action outputs the packet to the OpenFlow port number read from src.
And equivalent to the followings action of ovs-ofctl command.
output:src[start...end] |
Note
Like the NXActionOutputReg
but organized so
that there is room for a 64-bit experimenter OXM as 'src'.
Attribute | Description |
---|---|
ofs_nbits | Start and End for the OXM/NXM field.
Setting method refer to the nicira_ext.ofs_nbits |
src | OXM/NXM header for source field |
max_len | Max length to send to controller |
Example:
actions += [parser.NXActionOutputReg2(
ofs_nbits=nicira_ext.ofs_nbits(4, 31),
src="reg0",
max_len=1024)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionLearn
(table_id, specs, idle_timeout=0, hard_timeout=0, priority=32768, cookie=0, flags=0, fin_idle_timeout=0, fin_hard_timeout=0, type_=None, len_=None, experimenter=None, subtype=None)¶Adds or modifies flow action
This action adds or modifies a flow in OpenFlow table.
And equivalent to the followings action of ovs-ofctl command.
learn(argument[,argument]...) |
Attribute | Description |
---|---|
table_id | The table in which the new flow should be inserted |
specs | Adds a match criterion to the new flow Please use the
field=value
field[start..end] =src[start..end]
field[start..end]
Please use the
load:value->dst[start..end]
load:src[start..end] ->dst[start..end]
Please use the
output:field[start..end]
|
idle_timeout | Idle time before discarding(seconds) |
hard_timeout | Max time before discarding(seconds) |
priority | Priority level of flow entry |
cookie | Cookie for new flow |
flags | send_flow_rem |
fin_idle_timeout | Idle timeout after FIN(seconds) |
fin_hard_timeout | Hard timeout after FIN(seconds) |
Caution
The arguments specify the flow's match fields, actions, and other properties, as follows. At least one match criterion and one action argument should ordinarily be specified.
Example:
actions += [
parser.NXActionLearn(able_id=10,
specs=[parser.NXFlowSpecMatch(src=0x800,
dst=('eth_type_nxm', 0),
n_bits=16),
parser.NXFlowSpecMatch(src=('reg1', 1),
dst=('reg2', 3),
n_bits=5),
parser.NXFlowSpecMatch(src=('reg3', 1),
dst=('reg3', 1),
n_bits=5),
parser.NXFlowSpecLoad(src=0,
dst=('reg4', 3),
n_bits=5),
parser.NXFlowSpecLoad(src=('reg5', 1),
dst=('reg6', 3),
n_bits=5),
parser.NXFlowSpecOutput(src=('reg7', 1),
dst="",
n_bits=5)],
idle_timeout=180,
hard_timeout=300,
priority=1,
cookie=0x64,
flags=ofproto.OFPFF_SEND_FLOW_REM,
fin_idle_timeout=180,
fin_hard_timeout=300)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionExit
(type_=None, len_=None, experimenter=None, subtype=None)¶Halt action
This action causes OpenvSwitch to immediately halt execution of further actions.
And equivalent to the followings action of ovs-ofctl command.
exit |
Example:
actions += [parser.NXActionExit()]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionController
(max_len, controller_id, reason, type_=None, len_=None, experimenter=None, subtype=None)¶Send packet in message action
This action sends the packet to the OpenFlow controller as a packet in message.
And equivalent to the followings action of ovs-ofctl command.
controller(key=value...) |
Attribute | Description |
---|---|
max_len | Max length to send to controller |
controller_id | Controller ID to send packet-in |
reason | Reason for sending the message |
Example:
actions += [
parser.NXActionController(max_len=1024,
controller_id=1,
reason=ofproto.OFPR_INVALID_TTL)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionController2
(type_=None, len_=None, vendor=None, subtype=None, **kwargs)¶Send packet in message action
This action sends the packet to the OpenFlow controller as a packet in message.
And equivalent to the followings action of ovs-ofctl command.
controller(key=value...) |
Attribute | Description |
---|---|
max_len | Max length to send to controller |
controller_id | Controller ID to send packet-in |
reason | Reason for sending the message |
userdata | Additional data to the controller in the packet-in message |
pause | Flag to pause pipeline to resume later |
Example:
actions += [
parser.NXActionController(max_len=1024,
controller_id=1,
reason=ofproto.OFPR_INVALID_TTL,
userdata=[0xa,0xb,0xc],
pause=True)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionDecTtlCntIds
(cnt_ids, type_=None, len_=None, experimenter=None, subtype=None)¶Decrement TTL action
This action decrements TTL of IPv4 packet or hop limits of IPv6 packet.
And equivalent to the followings action of ovs-ofctl command.
dec_ttl(id1[,id2]...) |
Attribute | Description |
---|---|
cnt_ids | Controller ids |
Example:
actions += [parser.NXActionDecTtlCntIds(cnt_ids=[1,2,3])]
Note
If you want to set the following ovs-ofctl command.
Please use OFPActionDecNwTtl
.
dec_ttl |
os_ken.ofproto.ofproto_v1_3_parser.
NXActionStackPush
(field, start, end, type_=None, len_=None, experimenter=None, subtype=None)¶Push field action
This action pushes field to top of the stack.
And equivalent to the followings action of ovs-ofctl command.
pop:dst[start...end] |
Attribute | Description |
---|---|
field | OXM/NXM header for source field |
start | Start bit for source field |
end | End bit for source field |
Example:
actions += [parser.NXActionStackPush(field="reg2",
start=0,
end=5)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionStackPop
(field, start, end, type_=None, len_=None, experimenter=None, subtype=None)¶Pop field action
This action pops field from top of the stack.
And equivalent to the followings action of ovs-ofctl command.
pop:src[start...end] |
Attribute | Description |
---|---|
field | OXM/NXM header for destination field |
start | Start bit for destination field |
end | End bit for destination field |
Example:
actions += [parser.NXActionStackPop(field="reg2",
start=0,
end=5)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionSample
(probability, collector_set_id=0, obs_domain_id=0, obs_point_id=0, type_=None, len_=None, experimenter=None, subtype=None)¶Sample packets action
This action samples packets and sends one sample for every sampled packet.
And equivalent to the followings action of ovs-ofctl command.
sample(argument[,argument]...) |
Attribute | Description |
---|---|
probability | The number of sampled packets |
collector_set_id | The unsigned 32-bit integer identifier of the set of sample collectors to send sampled packets to |
obs_domain_id | The Unsigned 32-bit integer Observation Domain ID |
obs_point_id | The unsigned 32-bit integer Observation Point ID |
Example:
actions += [parser.NXActionSample(probability=3,
collector_set_id=1,
obs_domain_id=2,
obs_point_id=3,)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionSample2
(probability, collector_set_id=0, obs_domain_id=0, obs_point_id=0, sampling_port=0, type_=None, len_=None, experimenter=None, subtype=None)¶Sample packets action
This action samples packets and sends one sample for every sampled packet. 'sampling_port' can be equal to ingress port or one of egress ports.
And equivalent to the followings action of ovs-ofctl command.
sample(argument[,argument]...) |
Attribute | Description |
---|---|
probability | The number of sampled packets |
collector_set_id | The unsigned 32-bit integer identifier of the set of sample collectors to send sampled packets to |
obs_domain_id | The Unsigned 32-bit integer Observation Domain ID |
obs_point_id | The unsigned 32-bit integer Observation Point ID |
sampling_port | Sampling port number |
Example:
actions += [parser.NXActionSample2(probability=3,
collector_set_id=1,
obs_domain_id=2,
obs_point_id=3,
sampling_port=8080)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionFinTimeout
(fin_idle_timeout, fin_hard_timeout, type_=None, len_=None, experimenter=None, subtype=None)¶Change TCP timeout action
This action changes the idle timeout or hard timeout or both, of this OpenFlow rule when the rule matches a TCP packet with the FIN or RST flag.
And equivalent to the followings action of ovs-ofctl command.
fin_timeout(argument[,argument]...) |
Attribute | Description |
---|---|
fin_idle_timeout | Causes the flow to expire after the given number of seconds of inactivity |
fin_idle_timeout | Causes the flow to expire after the given number of second, regardless of activity |
Example:
match = parser.OFPMatch(ip_proto=6, eth_type=0x0800)
actions += [parser.NXActionFinTimeout(fin_idle_timeout=30,
fin_hard_timeout=60)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionConjunction
(clause, n_clauses, id_, type_=None, len_=None, experimenter=None, subtype=None)¶Conjunctive matches action
This action ties groups of individual OpenFlow flows into higher-level conjunctive flows. Please refer to the ovs-ofctl command manual for details.
And equivalent to the followings action of ovs-ofctl command.
conjunction(id,k/n) |
Attribute | Description |
---|---|
clause | Number assigned to the flow's dimension |
n_clauses | Specify the conjunctive flow's match condition |
id_ | Conjunction ID |
Example:
actions += [parser.NXActionConjunction(clause=1,
n_clauses=2,
id_=10)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionMultipath
(fields, basis, algorithm, max_link, arg, ofs_nbits, dst, type_=None, len_=None, experimenter=None, subtype=None)¶Select multipath link action
This action selects multipath link based on the specified parameters. Please refer to the ovs-ofctl command manual for details.
And equivalent to the followings action of ovs-ofctl command.
multipath(fields, basis, algorithm, n_links, arg, dst[start..end]) |
Attribute | Description |
---|---|
fields | One of NX_HASH_FIELDS_* |
basis | Universal hash parameter |
algorithm | One of NX_MP_ALG_*. |
max_link | Number of output links |
arg | Algorithm-specific argument |
ofs_nbits | Start and End for the OXM/NXM field.
Setting method refer to the nicira_ext.ofs_nbits |
dst | OXM/NXM header for source field |
Example:
actions += [parser.NXActionMultipath(
fields=nicira_ext.NX_HASH_FIELDS_SYMMETRIC_L4,
basis=1024,
algorithm=nicira_ext.NX_MP_ALG_HRW,
max_link=5,
arg=0,
ofs_nbits=nicira_ext.ofs_nbits(4, 31),
dst="reg2")]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionBundle
(algorithm, fields, basis, slave_type, n_slaves, ofs_nbits, dst, slaves)¶Select bundle link action
This action selects bundle link based on the specified parameters. Please refer to the ovs-ofctl command manual for details.
And equivalent to the followings action of ovs-ofctl command.
bundle(fields, basis, algorithm, slave_type, slaves:[ s1, s2,...]) |
Attribute | Description |
---|---|
algorithm | One of NX_MP_ALG_*. |
fields | One of NX_HASH_FIELDS_* |
basis | Universal hash parameter |
slave_type | Type of slaves(must be NXM_OF_IN_PORT) |
n_slaves | Number of slaves |
ofs_nbits | Start and End for the OXM/NXM field. (must be zero) |
dst | OXM/NXM header for source field(must be zero) |
slaves | List of slaves |
Example:
actions += [parser.NXActionBundle(
algorithm=nicira_ext.NX_MP_ALG_HRW,
fields=nicira_ext.NX_HASH_FIELDS_ETH_SRC,
basis=0,
slave_type=nicira_ext.NXM_OF_IN_PORT,
n_slaves=2,
ofs_nbits=0,
dst=0,
slaves=[2, 3])]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionBundleLoad
(algorithm, fields, basis, slave_type, n_slaves, ofs_nbits, dst, slaves)¶Select bundle link action
This action has the same behavior as the bundle action, with one exception. Please refer to the ovs-ofctl command manual for details.
And equivalent to the followings action of ovs-ofctl command.
bundle_load(fields, basis, algorithm, slave_type, dst[start... *emd*], slaves:[ s1, s2,...]) | |
Attribute | Description |
---|---|
algorithm | One of NX_MP_ALG_*. |
fields | One of NX_HASH_FIELDS_* |
basis | Universal hash parameter |
slave_type | Type of slaves(must be NXM_OF_IN_PORT) |
n_slaves | Number of slaves |
ofs_nbits | Start and End for the OXM/NXM field.
Setting method refer to the nicira_ext.ofs_nbits |
dst | OXM/NXM header for source field |
slaves | List of slaves |
Example:
actions += [parser.NXActionBundleLoad(
algorithm=nicira_ext.NX_MP_ALG_HRW,
fields=nicira_ext.NX_HASH_FIELDS_ETH_SRC,
basis=0,
slave_type=nicira_ext.NXM_OF_IN_PORT,
n_slaves=2,
ofs_nbits=nicira_ext.ofs_nbits(4, 31),
dst="reg0",
slaves=[2, 3])]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionCT
(flags, zone_src, zone_ofs_nbits, recirc_table, alg, actions, type_=None, len_=None, experimenter=None, subtype=None)¶Pass traffic to the connection tracker action
This action sends the packet through the connection tracker.
And equivalent to the followings action of ovs-ofctl command.
ct(argument[,argument]...) |
Attribute | Description |
---|---|
flags | Zero or more(Unspecified flag bits must be zero.) |
zone_src | OXM/NXM header for source field |
zone_ofs_nbits | Start and End for the OXM/NXM field.
Setting method refer to the nicira_ext.ofs_nbits .
If you need set the Immediate value for zone,
zone_src must be set to None or empty character string. |
recirc_table | Recirculate to a specific table |
alg | Well-known port number for the protocol |
actions | Zero or more actions may immediately follow this action |
Note
If you set number to zone_src, Traceback occurs when you run the to_jsondict.
Example:
match = parser.OFPMatch(eth_type=0x0800, ct_state=(0,32))
actions += [parser.NXActionCT(
flags = 1,
zone_src = "reg0",
zone_ofs_nbits = nicira_ext.ofs_nbits(4, 31),
recirc_table = 4,
alg = 0,
actions = [])]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionNAT
(flags, range_ipv4_min='', range_ipv4_max='', range_ipv6_min='', range_ipv6_max='', range_proto_min=None, range_proto_max=None, type_=None, len_=None, experimenter=None, subtype=None)¶Network address translation action
This action sends the packet through the connection tracker.
And equivalent to the followings action of ovs-ofctl command.
Note
The following command image does not exist in ovs-ofctl command manual and has been created from the command response.
nat(src=ip_min-ip_max : proto_min-proto-max) |
Attribute | Description |
---|---|
flags | Zero or more(Unspecified flag bits must be zero.) |
range_ipv4_min | Range ipv4 address minimun |
range_ipv4_max | Range ipv4 address maximun |
range_ipv6_min | Range ipv6 address minimun |
range_ipv6_max | Range ipv6 address maximun |
range_proto_min | Range protocol minimum |
range_proto_max | Range protocol maximun |
Caution
NXActionNAT
must be defined in the actions in the
NXActionCT
.
Example:
match = parser.OFPMatch(eth_type=0x0800)
actions += [
parser.NXActionCT(
flags = 1,
zone_src = "reg0",
zone_ofs_nbits = nicira_ext.ofs_nbits(4, 31),
recirc_table = 255,
alg = 0,
actions = [
parser.NXActionNAT(
flags = 1,
range_ipv4_min = "10.1.12.0",
range_ipv4_max = "10.1.13.255",
range_ipv6_min = "",
range_ipv6_max = "",
range_proto_min = 1,
range_proto_max = 1023
)
]
)
]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionOutputTrunc
(port, max_len, type_=None, len_=None, experimenter=None, subtype=None)¶Truncate output action
This action truncate a packet into the specified size and outputs it.
And equivalent to the followings action of ovs-ofctl command.
output(port=port,max_len=max_len) |
Attribute | Description |
---|---|
port | Output port |
max_len | Max bytes to send |
Example:
actions += [parser.NXActionOutputTrunc(port=8080,
max_len=1024)]
os_ken.ofproto.ofproto_v1_3_parser.
NXActionDecNshTtl
(type_=None, len_=None, vendor=None, subtype=None)¶Decrement NSH TTL action
This action decrements the TTL in the Network Service Header(NSH).
This action was added in OVS v2.9.
And equivalent to the followings action of ovs-ofctl command.
dec_nsh_ttl
Example:
actions += [parser.NXActionDecNshTtl()]
os_ken.ofproto.ofproto_v1_3_parser.
NXFlowSpecMatch
(src, dst, n_bits)¶Specification for adding match criterion
This class is used by NXActionLearn
.
For the usage of this class, please refer to NXActionLearn
.
Attribute | Description |
---|---|
src | OXM/NXM header and Start bit for source field |
dst | OXM/NXM header and Start bit for destination field |
n_bits | The number of bits from the start bit |
os_ken.ofproto.ofproto_v1_3_parser.
NXFlowSpecLoad
(src, dst, n_bits)¶Add NXAST_REG_LOAD actions
This class is used by NXActionLearn
.
For the usage of this class, please refer to NXActionLearn
.
Attribute | Description |
---|---|
src | OXM/NXM header and Start bit for source field |
dst | OXM/NXM header and Start bit for destination field |
n_bits | The number of bits from the start bit |
os_ken.ofproto.ofproto_v1_3_parser.
NXFlowSpecOutput
(src, n_bits, dst='')¶Add an OFPAT_OUTPUT action
This class is used by NXActionLearn
.
For the usage of this class, please refer to NXActionLearn
.
Attribute | Description |
---|---|
src | OXM/NXM header and Start bit for source field |
dst | Must be '' |
n_bits | The number of bits from the start bit |
os_ken.ofproto.nicira_ext.
ofs_nbits
(start, end)¶The utility method for ofs_nbits
This method is used in the class to set the ofs_nbits.
This method converts start/end bits into ofs_nbits required to specify the bit range of OXM/NXM fields.
ofs_nbits can be calculated as following:
ofs_nbits = (start << 6) + (end - start)
The parameter start/end means the OXM/NXM field of ovs-ofctl command.
field[start..end] |
Attribute | Description |
---|---|
start | Start bit for OXM/NXM field |
end | End bit for OXM/NXM field |
The API of this class is the same as OFPMatch
.
You can define the flow match by the keyword arguments. The following arguments are available.
Argument | Value | Description |
---|---|---|
in_port_nxm | Integer 16bit | OpenFlow port number. |
eth_dst_nxm | MAC address | Ethernet destination address. |
eth_src_nxm | MAC address | Ethernet source address. |
eth_type_nxm | Integer 16bit | Ethernet type. Needed to support Nicira extensions that require the eth_type to be set. (i.e. tcp_flags_nxm) |
vlan_tci | Integer 16bit | VLAN TCI. Basically same as vlan_vid plus vlan_pcp. |
nw_tos | Integer 8bit | IP ToS or IPv6 traffic class field dscp. Requires setting fields: eth_type_nxm = [0x0800 (IPv4)|0x86dd (IPv6)] |
ip_proto_nxm | Integer 8bit | IP protocol. Needed to support Nicira extensions that require the ip_proto to be set. (i.e. tcp_flags_nxm) Requires setting fields: eth_type_nxm = [0x0800 (IPv4)|0x86dd (IPv6)] |
ipv4_src_nxm | IPv4 address | IPv4 source address. Requires setting fields: eth_type_nxm = 0x0800 (IPv4) |
ipv4_dst_nxm | IPv4 address | IPv4 destination address. Requires setting fields: eth_type_nxm = 0x0800 (IPv4) |
tcp_src_nxm | Integer 16bit | TCP source port. Requires setting fields: eth_type_nxm = [0x0800 (IPv4)|0x86dd (IPv6)] and ip_proto_nxm = 6 (TCP) |
tcp_dst_nxm | Integer 16bit | TCP destination port. Requires setting fields: eth_type_nxm = [0x0800 (IPv4)|0x86dd (IPv6)] and ip_proto_nxm = 6 (TCP) |
udp_src_nxm | Integer 16bit | UDP source port. Requires setting fields: eth_type_nxm = [0x0800 (IPv4)|0x86dd (IPv6)] and ip_proto_nxm = 17 (UDP) |
udp_dst_nxm | Integer 16bit | UDP destination port. eth_type_nxm = [0x0800 (IPv4)|0x86dd (IPv6)] and ip_proto_nxm = 17 (UDP) |
icmpv4_type_nxm | Integer 8bit | Type matches the ICMP type and code matches the ICMP code. Requires setting fields: eth_type_nxm = 0x0800 (IPv4) and ip_proto_nxm = 1 (ICMP) |
icmpv4_code_nxm | Integer 8bit | Type matches the ICMP type and code matches the ICMP code. Requires setting fields: eth_type_nxm = 0x0800 (IPv4) and ip_proto_nxm = 1 (ICMP) |
arp_op_nxm | Integer 16bit | Only ARP opcodes between 1 and 255 should be specified for matching. Requires setting fields: eth_type_nxm = 0x0806 (ARP) |
arp_spa_nxm | IPv4 address | An address may be specified as an IP address or host name. Requires setting fields: eth_type_nxm = 0x0806 (ARP) |
arp_tpa_nxm | IPv4 address | An address may be specified as an IP address or host name. Requires setting fields: eth_type_nxm = 0x0806 (ARP) |
tunnel_id_nxm | Integer 64bit | Tunnel identifier. |
arp_sha_nxm | MAC address | An address is specified as 6 pairs of hexadecimal digits delimited by colons. Requires setting fields: eth_type_nxm = 0x0806 (ARP) |
arp_tha_nxm | MAC address | An address is specified as 6 pairs of hexadecimal digits delimited by colons. Requires setting fields: eth_type_nxm = 0x0806 (ARP) |
ipv6_src_nxm | IPv6 address | IPv6 source address. Requires setting fields: eth_type_nxm = 0x86dd (IPv6) |
ipv6_dst_nxm | IPv6 address | IPv6 destination address. Requires setting fields: eth_type_nxm = 0x86dd (IPv6) |
icmpv6_type_nxm | Integer 8bit | Type matches the ICMP type and code matches the ICMP code. Requires setting fields: eth_type_nxm = 0x86dd (IPv6) and ip_proto_nxm = 58 (ICMP for IPv6) |
icmpv6_code_nxm | Integer 8bit | Type matches the ICMP type and code matches the ICMP code. Requires setting fields: eth_type_nxm = 0x86dd (IPv6) and ip_proto_nxm = 58 (ICMP for IPv6) |
nd_target | IPv6 address | The target address ipv6. Requires setting fields: eth_type_nxm = 0x86dd (IPv6) and ip_proto_nxm = 58 (ICMP for IPv6) |
nd_sll | MAC address | The source link-layer address option. Requires setting fields: eth_type_nxm = 0x86dd (IPv6) and ip_proto_nxm = 58 (ICMP for IPv6) and icmpv6_type_nxm = 135 (Neighbor solicitation) |
nd_tll | MAC address | The target link-layer address option. Requires setting fields: eth_type_nxm = 0x86dd (IPv6) and ip_proto_nxm = 58 (ICMP for IPv6) and icmpv6_type_nxm = 136 (Neighbor advertisement) |
ip_frag | Integer 8bit | frag_type specifies what kind of IP fragments or non-fragments to match. Requires setting fields: eth_type_nxm = [0x0800 (IPv4)|0x86dd (IPv6)] |
ipv6_label | Integer 32bit | Matches IPv6 flow label. Requires setting fields: eth_type_nxm = 0x86dd (IPv6) |
ip_ecn_nxm | Integer 8bit | Matches ecn bits in IP ToS or IPv6 traffic class fields. Requires setting fields: eth_type_nxm = [0x0800 (IPv4)|0x86dd (IPv6)] |
nw_ttl | Integer 8bit | IP TTL or IPv6 hop limit value ttl. Requires setting fields: eth_type_nxm = [0x0800 (IPv4)|0x86dd (IPv6)] |
mpls_ttl | Integer 8bit | The TTL of the outer MPLS label stack entry of a packet. Requires setting fields: eth_type_nxm = 0x8847 (MPLS Unicast) |
tun_ipv4_src | IPv4 address | Tunnel IPv4 source address. Requires setting fields: eth_type_nxm = 0x0800 (IPv4) |
tun_ipv4_dst | IPv4 address | Tunnel IPv4 destination address. Requires setting fields: eth_type_nxm = 0x0800 (IPv4) |
pkt_mark | Integer 32bit | Packet metadata mark. |
tcp_flags_nxm | Integer 16bit | TCP Flags. Requires setting fields: eth_type_nxm = [0x0800 (IP)|0x86dd (IPv6)] and ip_proto_nxm = 6 (TCP) |
conj_id | Integer 32bit | Conjunction ID used only with the conjunction action |
tun_gbp_id | Integer 16bit | The group policy identifier in the VXLAN header. |
tun_gbp_flags | Integer 8bit | The group policy flags in the VXLAN header. |
tun_flags | Integer 16bit | Flags indicating various aspects of the tunnel encapsulation. |
ct_state | Integer 32bit | Conntrack state. |
ct_zone | Integer 16bit | Conntrack zone. |
ct_mark | Integer 32bit | Conntrack mark. |
ct_label | Integer 128bit | Conntrack label. |
tun_ipv6_src | IPv6 address | Tunnel IPv6 source address. Requires setting fields: eth_type_nxm = 0x86dd (IPv6) |
tun_ipv6_dst | IPv6 address | Tunnel IPv6 destination address. Requires setting fields: eth_type_nxm = 0x86dd (IPv6) |
_recirc_id | Integer 32bit | ID for recirculation. |
_dp_hash | Integer 32bit | Flow hash computed in Datapath. |
nsh_flags | Integer 8bit | Flags field in NSH Base Header. Requires eth_type_nxm = 0x894f (NSH). Since OpenFlow 1.3 and OVS v2.8. |
nsh_mdtype | Integer 8bit | Metadata Type in NSH Base Header. Requires eth_type_nxm = 0x894f (NSH). Since OpenFlow 1.3 and OVS v2.8. |
nsh_np | Integer 8bit | Next Protocol type in NSH Base Header. Requires eth_type_nxm = 0x894f (NSH). Since OpenFlow 1.3 and OVS v2.8. |
nsh_spi | Integer 32bit | Service Path Identifier in NSH Service Path Header. Requires eth_type_nxm = 0x894f (NSH). Since OpenFlow 1.3 and OVS v2.8. |
nsh_si | Integer 8bit | Service Index in NSH Service Path Header. Requires eth_type_nxm = 0x894f (NSH). Since OpenFlow 1.3 and OVS v2.8. |
nsh_c<N> | Integer 32bit | Context fields in NSH Context Header. <N> is a number of 1-4. Requires eth_type_nxm = 0x894f (NSH). Since OpenFlow 1.3 and OVS v2.8. |
nsh_ttl | Integer 8bit | TTL field in NSH Base Header. Requires eth_type_nxm = 0x894f (NSH). Since OpenFlow 1.3 and OVS v2.9. |
reg<idx> | Integer 32bit | Packet register. <idx> is register number 0-15. |
xxreg<idx> | Integer 128bit | Packet extended-extended register. <idx> is register number 0-3. |
Note
Setting the TCP flags via the nicira extensions. This is required when using OVS version < 2.4. When using the nxm fields, you need to use any nxm prereq fields as well or you will receive a OFPBMC_BAD_PREREQ error
Example:
# WILL NOT work
flag = tcp.TCP_ACK
match = parser.OFPMatch(
tcp_flags_nxm=(flag, flag),
ip_proto=inet.IPPROTO_TCP,
eth_type=eth_type)
# Works
flag = tcp.TCP_ACK
match = parser.OFPMatch(
tcp_flags_nxm=(flag, flag),
ip_proto_nxm=inet.IPPROTO_TCP,
eth_type_nxm=eth_type)
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.