nicira_ext: Separate the most of NX definitions from ofproto_v1_0
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
parent
22aaa699c9
commit
893517cb29
241
ryu/ofproto/nicira_ext.py
Normal file
241
ryu/ofproto/nicira_ext.py
Normal file
@ -0,0 +1,241 @@
|
||||
# Copyright (C) 2011, 2012 Nippon Telegraph and Telephone Corporation.
|
||||
# Copyright (C) 2011, 2012 Isaku Yamahata <yamahata at valinux co jp>
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# Nicira extensions
|
||||
# Many of these definitions are common among OpenFlow versions.
|
||||
|
||||
from struct import calcsize
|
||||
|
||||
from ofproto_common import OFP_HEADER_SIZE
|
||||
|
||||
# Action subtypes
|
||||
NXAST_RESUBMIT = 1
|
||||
NXAST_SET_TUNNEL = 2
|
||||
NXAST_DROP_SPOOFED_ARP__OBSOLETE = 3
|
||||
NXAST_SET_QUEUE = 4
|
||||
NXAST_POP_QUEUE = 5
|
||||
NXAST_REG_MOVE = 6
|
||||
NXAST_REG_LOAD = 7
|
||||
NXAST_NOTE = 8
|
||||
NXAST_SET_TUNNEL64 = 9
|
||||
NXAST_MULTIPATH = 10
|
||||
NXAST_AUTOPATH = 11
|
||||
NXAST_BUNDLE = 12
|
||||
NXAST_BUNDLE_LOAD = 13
|
||||
NXAST_RESUBMIT_TABLE = 14
|
||||
NXAST_OUTPUT_REG = 15
|
||||
NXAST_LEARN = 16
|
||||
NXAST_EXIT = 17
|
||||
NXAST_DEC_TTL = 18
|
||||
NXAST_FIN_TIMEOUT = 19
|
||||
NXAST_CONTROLLER = 20
|
||||
|
||||
NX_ACTION_RESUBMIT_PACK_STR = '!HHIHHB3x'
|
||||
NX_ACTION_RESUBMIT_SIZE = 16
|
||||
assert calcsize(NX_ACTION_RESUBMIT_PACK_STR) == NX_ACTION_RESUBMIT_SIZE
|
||||
|
||||
NX_ACTION_SET_TUNNEL_PACK_STR = '!HHIH2xI'
|
||||
NX_ACTION_SET_TUNNEL_SIZE = 16
|
||||
assert calcsize(NX_ACTION_SET_TUNNEL_PACK_STR) == NX_ACTION_SET_TUNNEL_SIZE
|
||||
|
||||
NX_ACTION_SET_QUEUE_PACK_STR = '!HHIH2xI'
|
||||
NX_ACTION_SET_QUEUE_SIZE = 16
|
||||
assert calcsize(NX_ACTION_SET_QUEUE_PACK_STR) == NX_ACTION_SET_QUEUE_SIZE
|
||||
|
||||
NX_ACTION_POP_QUEUE_PACK_STR = '!HHIH6x'
|
||||
NX_ACTION_POP_QUEUE_SIZE = 16
|
||||
assert calcsize(NX_ACTION_POP_QUEUE_PACK_STR) == NX_ACTION_POP_QUEUE_SIZE
|
||||
|
||||
NX_ACTION_REG_MOVE_PACK_STR = '!HHIHHHHII'
|
||||
NX_ACTION_REG_MOVE_SIZE = 24
|
||||
assert calcsize(NX_ACTION_REG_MOVE_PACK_STR) == NX_ACTION_REG_MOVE_SIZE
|
||||
|
||||
NX_ACTION_REG_LOAD_PACK_STR = '!HHIHHIQ'
|
||||
NX_ACTION_REG_LOAD_SIZE = 24
|
||||
assert calcsize(NX_ACTION_REG_LOAD_PACK_STR) == NX_ACTION_REG_LOAD_SIZE
|
||||
|
||||
NX_ACTION_SET_TUNNEL64_PACK_STR = '!HHIH6xQ'
|
||||
NX_ACTION_SET_TUNNEL64_SIZE = 24
|
||||
assert calcsize(NX_ACTION_SET_TUNNEL64_PACK_STR) == NX_ACTION_SET_TUNNEL64_SIZE
|
||||
|
||||
NX_ACTION_MULTIPATH_PACK_STR = '!HHIHHH2xHHI2xHI'
|
||||
NX_ACTION_MULTIPATH_SIZE = 32
|
||||
assert calcsize(NX_ACTION_MULTIPATH_PACK_STR) == NX_ACTION_MULTIPATH_SIZE
|
||||
|
||||
NX_ACTION_NOTE_PACK_STR = '!HHIH6B'
|
||||
NX_ACTION_NOTE_SIZE = 16
|
||||
assert calcsize(NX_ACTION_NOTE_PACK_STR) == NX_ACTION_NOTE_SIZE
|
||||
|
||||
NX_ACTION_BUNDLE_PACK_STR = '!HHIHHHHIHHI4x'
|
||||
NX_ACTION_BUNDLE_SIZE = 32
|
||||
assert calcsize(NX_ACTION_BUNDLE_PACK_STR) == NX_ACTION_BUNDLE_SIZE
|
||||
|
||||
NX_ACTION_AUTOPATH_PACK_STR = '!HHIHHII4x'
|
||||
NX_ACTION_AUTOPATH_SIZE = 24
|
||||
assert calcsize(NX_ACTION_AUTOPATH_PACK_STR) == NX_ACTION_AUTOPATH_SIZE
|
||||
|
||||
NX_ACTION_OUTPUT_REG_PACK_STR = '!HHIHHIH6x'
|
||||
NX_ACTION_OUTPUT_REG_SIZE = 24
|
||||
assert calcsize(NX_ACTION_OUTPUT_REG_PACK_STR) == NX_ACTION_OUTPUT_REG_SIZE
|
||||
|
||||
NX_ACTION_LEARN_PACK_STR = '!HHIHHHHQHBxHH'
|
||||
NX_ACTION_LEARN_SIZE = 32
|
||||
assert calcsize(NX_ACTION_LEARN_PACK_STR) == NX_ACTION_LEARN_SIZE
|
||||
|
||||
NX_ACTION_CONTROLLER_PACK_STR = '!HHIHHHBB'
|
||||
NX_ACTION_CONTROLLER_SIZE = 16
|
||||
assert calcsize(NX_ACTION_CONTROLLER_PACK_STR) == NX_ACTION_CONTROLLER_SIZE
|
||||
|
||||
NX_ACTION_FIN_TIMEOUT_PACK_STR = '!HHIHHH2x'
|
||||
NX_ACTION_FIN_TIMEOUT_SIZE = 16
|
||||
assert calcsize(NX_ACTION_FIN_TIMEOUT_PACK_STR) == NX_ACTION_FIN_TIMEOUT_SIZE
|
||||
|
||||
NX_ACTION_HEADER_PACK_STR = '!HHIH6x'
|
||||
NX_ACTION_HEADER_SIZE = 16
|
||||
assert calcsize(NX_ACTION_HEADER_PACK_STR) == NX_ACTION_HEADER_SIZE
|
||||
|
||||
# Messages
|
||||
NXT_ROLE_REQUEST = 10
|
||||
NXT_ROLE_REPLY = 11
|
||||
NXT_SET_FLOW_FORMAT = 12
|
||||
NXT_FLOW_MOD = 13
|
||||
NXT_FLOW_REMOVED = 14
|
||||
NXT_FLOW_MOD_TABLE_ID = 15
|
||||
NXT_SET_PACKET_IN_FORMAT = 16
|
||||
NXT_PACKET_IN = 17
|
||||
NXT_FLOW_AGE = 18
|
||||
NXT_SET_ASYNC_CONFIG = 19
|
||||
NXT_SET_CONTROLLER_ID = 20
|
||||
|
||||
# enum nx_role
|
||||
NX_ROLE_OTHER = 0
|
||||
NX_ROLE_MASTER = 1
|
||||
NX_ROLE_SLAVE = 2
|
||||
|
||||
# enum nx_flow_format
|
||||
NXFF_OPENFLOW10 = 0
|
||||
NXFF_NXM = 2
|
||||
|
||||
# enum nx_packet_in_format
|
||||
NXPIF_OPENFLOW10 = 0
|
||||
NXPIF_NXM = 1
|
||||
|
||||
# enum nx_stats_types
|
||||
NXST_FLOW = 0
|
||||
NXST_AGGREGATE = 1
|
||||
NXST_FLOW_MONITOR = 2
|
||||
|
||||
NICIRA_HEADER_PACK_STR = '!II'
|
||||
NICIRA_HEADER_SIZE = 16
|
||||
assert (calcsize(NICIRA_HEADER_PACK_STR) +
|
||||
OFP_HEADER_SIZE == NICIRA_HEADER_SIZE)
|
||||
|
||||
NX_ROLE_PACK_STR = '!I'
|
||||
NX_ROLE_SIZE = 20
|
||||
assert (calcsize(NX_ROLE_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_ROLE_SIZE)
|
||||
|
||||
NX_FLOW_MOD_PACK_STR = '!Q4HI3H6x'
|
||||
NX_FLOW_MOD_SIZE = 48
|
||||
assert (calcsize(NX_FLOW_MOD_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_FLOW_MOD_SIZE)
|
||||
|
||||
NX_SET_FLOW_FORMAT_PACK_STR = '!I'
|
||||
NX_SET_FLOW_FORMAT_SIZE = 20
|
||||
assert (calcsize(NX_SET_FLOW_FORMAT_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_SET_FLOW_FORMAT_SIZE)
|
||||
|
||||
NX_FLOW_REMOVED_PACK_STR = '!QHBxIIHHQQ'
|
||||
NX_FLOW_REMOVED_SIZE = 56
|
||||
assert (calcsize(NX_FLOW_REMOVED_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_FLOW_REMOVED_SIZE)
|
||||
|
||||
NX_FLOW_MOD_TABLE_ID_PACK_STR = '!B7x'
|
||||
NX_FLOW_MOD_TABLE_ID_SIZE = 24
|
||||
assert (calcsize(NX_FLOW_MOD_TABLE_ID_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_FLOW_MOD_TABLE_ID_SIZE)
|
||||
|
||||
NX_SET_PACKET_IN_FORMAT_PACK_STR = '!I'
|
||||
NX_SET_PACKET_IN_FORMAT_SIZE = 20
|
||||
assert (calcsize(NX_SET_PACKET_IN_FORMAT_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_SET_PACKET_IN_FORMAT_SIZE)
|
||||
|
||||
NX_PACKET_IN_PACK_STR = '!IHBBQH6x'
|
||||
NX_PACKET_IN_SIZE = 40
|
||||
assert (calcsize(NX_PACKET_IN_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_PACKET_IN_SIZE)
|
||||
|
||||
NX_ASYNC_CONFIG_PACK_STR = '!IIIIII'
|
||||
NX_ASYNC_CONFIG_SIZE = 40
|
||||
assert (calcsize(NX_ASYNC_CONFIG_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_ASYNC_CONFIG_SIZE)
|
||||
|
||||
NX_CONTROLLER_ID_PACK_STR = '!6xH'
|
||||
NX_CONTROLLER_ID_SIZE = 24
|
||||
assert (calcsize(NX_CONTROLLER_ID_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_CONTROLLER_ID_SIZE)
|
||||
|
||||
NX_STATS_MSG_PACK_STR = '!I4x'
|
||||
NX_STATS_MSG0_SIZE = 8
|
||||
assert calcsize(NX_STATS_MSG_PACK_STR) == NX_STATS_MSG0_SIZE
|
||||
NX_STATS_MSG_SIZE = 24
|
||||
_OFP_VENDOR_STATS_MSG_SIZE = 16
|
||||
assert (calcsize(NX_STATS_MSG_PACK_STR) + _OFP_VENDOR_STATS_MSG_SIZE ==
|
||||
NX_STATS_MSG_SIZE)
|
||||
|
||||
NX_FLOW_STATS_REQUEST_PACK_STR = '!2HB3x'
|
||||
NX_FLOW_STATS_REQUEST_SIZE = 8
|
||||
assert (calcsize(NX_FLOW_STATS_REQUEST_PACK_STR) ==
|
||||
NX_FLOW_STATS_REQUEST_SIZE)
|
||||
|
||||
NX_FLOW_STATS_PACK_STR = '!HBxIIHHHHHHQQQ'
|
||||
NX_FLOW_STATS_SIZE = 48
|
||||
assert calcsize(NX_FLOW_STATS_PACK_STR) == NX_FLOW_STATS_SIZE
|
||||
|
||||
NX_AGGREGATE_STATS_REQUEST_PACK_STR = '!2HB3x'
|
||||
NX_AGGREGATE_STATS_REQUEST_SIZE = 8
|
||||
assert (calcsize(NX_AGGREGATE_STATS_REQUEST_PACK_STR) ==
|
||||
NX_AGGREGATE_STATS_REQUEST_SIZE)
|
||||
|
||||
NX_AGGREGATE_STATS_REPLY_PACK_STR = '!QQI4x'
|
||||
NX_AGGREGATE_STATS_REPLY_SIZE = 24
|
||||
assert (calcsize(NX_AGGREGATE_STATS_REPLY_PACK_STR) ==
|
||||
NX_AGGREGATE_STATS_REPLY_SIZE)
|
||||
|
||||
# enum nx_hash_fields
|
||||
NX_HASH_FIELDS_ETH_SRC = 0
|
||||
NX_HASH_FIELDS_SYMMETRIC_L4 = 1
|
||||
|
||||
# enum nx_mp_algorithm
|
||||
NX_MP_ALG_MODULO_N = 0
|
||||
NX_MP_ALG_HASH_THRESHOLD = 1
|
||||
NX_MP_ALG_HRW = 2
|
||||
NX_MP_ALG_ITER_HASH = 3
|
||||
|
||||
# enum nx_bd_algorithm
|
||||
NX_BD_ALG_ACTIVE_BACKUP = 0
|
||||
NX_BD_ALG_HRW = 1
|
||||
|
||||
# nx_learn constants
|
||||
NX_LEARN_N_BITS_MASK = 0x3ff
|
||||
NX_LEARN_SRC_FIELD = 0 << 13 # Copy from field.
|
||||
NX_LEARN_SRC_IMMEDIATE = 1 << 13 # Copy from immediate value.
|
||||
NX_LEARN_SRC_MASK = 1 << 13
|
||||
NX_LEARN_DST_MATCH = 0 << 11 # Add match criterion.
|
||||
NX_LEARN_DST_LOAD = 1 << 11 # Add NXAST_REG_LOAD action
|
||||
NX_LEARN_DST_OUTPUT = 2 << 11 # Add OFPAT_OUTPUT action.
|
||||
NX_LEARN_DST_RESERVED = 3 << 11 # Not yet defined.
|
||||
NX_LEARN_DST_MASK = 3 << 11
|
@ -242,92 +242,6 @@ OFP_ACTION_PACK_STR = '!H'
|
||||
# OFP_ACTION_SIZE = 8
|
||||
# assert calcsize(OFP_ACTION_PACK_STR) == OFP_ACTION_SIZE
|
||||
|
||||
# enum nx_action_subtype
|
||||
NXAST_RESUBMIT = 1
|
||||
NXAST_SET_TUNNEL = 2
|
||||
NXAST_DROP_SPOOFED_ARP__OBSOLETE = 3
|
||||
NXAST_SET_QUEUE = 4
|
||||
NXAST_POP_QUEUE = 5
|
||||
NXAST_REG_MOVE = 6
|
||||
NXAST_REG_LOAD = 7
|
||||
NXAST_NOTE = 8
|
||||
NXAST_SET_TUNNEL64 = 9
|
||||
NXAST_MULTIPATH = 10
|
||||
NXAST_AUTOPATH = 11
|
||||
NXAST_BUNDLE = 12
|
||||
NXAST_BUNDLE_LOAD = 13
|
||||
NXAST_RESUBMIT_TABLE = 14
|
||||
NXAST_OUTPUT_REG = 15
|
||||
NXAST_LEARN = 16
|
||||
NXAST_EXIT = 17
|
||||
NXAST_DEC_TTL = 18
|
||||
NXAST_FIN_TIMEOUT = 19
|
||||
NXAST_CONTROLLER = 20
|
||||
|
||||
NX_ACTION_RESUBMIT_PACK_STR = '!HHIHHB3x'
|
||||
NX_ACTION_RESUBMIT_SIZE = 16
|
||||
assert calcsize(NX_ACTION_RESUBMIT_PACK_STR) == NX_ACTION_RESUBMIT_SIZE
|
||||
|
||||
NX_ACTION_SET_TUNNEL_PACK_STR = '!HHIH2xI'
|
||||
NX_ACTION_SET_TUNNEL_SIZE = 16
|
||||
assert calcsize(NX_ACTION_SET_TUNNEL_PACK_STR) == NX_ACTION_SET_TUNNEL_SIZE
|
||||
|
||||
NX_ACTION_SET_QUEUE_PACK_STR = '!HHIH2xI'
|
||||
NX_ACTION_SET_QUEUE_SIZE = 16
|
||||
assert calcsize(NX_ACTION_SET_QUEUE_PACK_STR) == NX_ACTION_SET_QUEUE_SIZE
|
||||
|
||||
NX_ACTION_POP_QUEUE_PACK_STR = '!HHIH6x'
|
||||
NX_ACTION_POP_QUEUE_SIZE = 16
|
||||
assert calcsize(NX_ACTION_POP_QUEUE_PACK_STR) == NX_ACTION_POP_QUEUE_SIZE
|
||||
|
||||
NX_ACTION_REG_MOVE_PACK_STR = '!HHIHHHHII'
|
||||
NX_ACTION_REG_MOVE_SIZE = 24
|
||||
assert calcsize(NX_ACTION_REG_MOVE_PACK_STR) == NX_ACTION_REG_MOVE_SIZE
|
||||
|
||||
NX_ACTION_REG_LOAD_PACK_STR = '!HHIHHIQ'
|
||||
NX_ACTION_REG_LOAD_SIZE = 24
|
||||
assert calcsize(NX_ACTION_REG_LOAD_PACK_STR) == NX_ACTION_REG_LOAD_SIZE
|
||||
|
||||
NX_ACTION_SET_TUNNEL64_PACK_STR = '!HHIH6xQ'
|
||||
NX_ACTION_SET_TUNNEL64_SIZE = 24
|
||||
assert calcsize(NX_ACTION_SET_TUNNEL64_PACK_STR) == NX_ACTION_SET_TUNNEL64_SIZE
|
||||
|
||||
NX_ACTION_MULTIPATH_PACK_STR = '!HHIHHH2xHHI2xHI'
|
||||
NX_ACTION_MULTIPATH_SIZE = 32
|
||||
assert calcsize(NX_ACTION_MULTIPATH_PACK_STR) == NX_ACTION_MULTIPATH_SIZE
|
||||
|
||||
NX_ACTION_NOTE_PACK_STR = '!HHIH6B'
|
||||
NX_ACTION_NOTE_SIZE = 16
|
||||
assert calcsize(NX_ACTION_NOTE_PACK_STR) == NX_ACTION_NOTE_SIZE
|
||||
|
||||
NX_ACTION_BUNDLE_PACK_STR = '!HHIHHHHIHHI4x'
|
||||
NX_ACTION_BUNDLE_SIZE = 32
|
||||
assert calcsize(NX_ACTION_BUNDLE_PACK_STR) == NX_ACTION_BUNDLE_SIZE
|
||||
|
||||
NX_ACTION_AUTOPATH_PACK_STR = '!HHIHHII4x'
|
||||
NX_ACTION_AUTOPATH_SIZE = 24
|
||||
assert calcsize(NX_ACTION_AUTOPATH_PACK_STR) == NX_ACTION_AUTOPATH_SIZE
|
||||
|
||||
NX_ACTION_OUTPUT_REG_PACK_STR = '!HHIHHIH6x'
|
||||
NX_ACTION_OUTPUT_REG_SIZE = 24
|
||||
assert calcsize(NX_ACTION_OUTPUT_REG_PACK_STR) == NX_ACTION_OUTPUT_REG_SIZE
|
||||
|
||||
NX_ACTION_LEARN_PACK_STR = '!HHIHHHHQHBxHH'
|
||||
NX_ACTION_LEARN_SIZE = 32
|
||||
assert calcsize(NX_ACTION_LEARN_PACK_STR) == NX_ACTION_LEARN_SIZE
|
||||
|
||||
NX_ACTION_CONTROLLER_PACK_STR = '!HHIHHHBB'
|
||||
NX_ACTION_CONTROLLER_SIZE = 16
|
||||
assert calcsize(NX_ACTION_CONTROLLER_PACK_STR) == NX_ACTION_CONTROLLER_SIZE
|
||||
|
||||
NX_ACTION_FIN_TIMEOUT_PACK_STR = '!HHIHHH2x'
|
||||
NX_ACTION_FIN_TIMEOUT_SIZE = 16
|
||||
assert calcsize(NX_ACTION_FIN_TIMEOUT_PACK_STR) == NX_ACTION_FIN_TIMEOUT_SIZE
|
||||
|
||||
NX_ACTION_HEADER_PACK_STR = '!HHIH6x'
|
||||
NX_ACTION_HEADER_SIZE = 16
|
||||
assert calcsize(NX_ACTION_HEADER_PACK_STR) == NX_ACTION_HEADER_SIZE
|
||||
|
||||
OFP_PACKET_OUT_PACK_STR = '!IHH'
|
||||
OFP_PACKET_OUT_SIZE = 16
|
||||
assert (calcsize(OFP_PACKET_OUT_PACK_STR) + OFP_HEADER_SIZE ==
|
||||
@ -583,113 +497,6 @@ assert (calcsize(OFP_QUEUE_PROP_MIN_RATE_PACK_STR) +
|
||||
|
||||
NX_VENDOR_ID = 0x00002320
|
||||
|
||||
# enum nicira_type (abridged)
|
||||
NXT_ROLE_REQUEST = 10
|
||||
NXT_ROLE_REPLY = 11
|
||||
NXT_SET_FLOW_FORMAT = 12
|
||||
NXT_FLOW_MOD = 13
|
||||
NXT_FLOW_REMOVED = 14
|
||||
NXT_FLOW_MOD_TABLE_ID = 15
|
||||
NXT_SET_PACKET_IN_FORMAT = 16
|
||||
NXT_PACKET_IN = 17
|
||||
NXT_FLOW_AGE = 18
|
||||
NXT_SET_ASYNC_CONFIG = 19
|
||||
NXT_SET_CONTROLLER_ID = 20
|
||||
|
||||
# enum nx_role
|
||||
NX_ROLE_OTHER = 0
|
||||
NX_ROLE_MASTER = 1
|
||||
NX_ROLE_SLAVE = 2
|
||||
|
||||
# enum nx_flow_format
|
||||
NXFF_OPENFLOW10 = 0
|
||||
NXFF_NXM = 2
|
||||
|
||||
# enum nx_packet_in_format
|
||||
NXPIF_OPENFLOW10 = 0
|
||||
NXPIF_NXM = 1
|
||||
|
||||
# enum nx_stats_types
|
||||
NXST_FLOW = 0
|
||||
NXST_AGGREGATE = 1
|
||||
NXST_FLOW_MONITOR = 2
|
||||
|
||||
NICIRA_HEADER_PACK_STR = '!II'
|
||||
NICIRA_HEADER_SIZE = 16
|
||||
assert (calcsize(NICIRA_HEADER_PACK_STR) +
|
||||
OFP_HEADER_SIZE == NICIRA_HEADER_SIZE)
|
||||
|
||||
NX_ROLE_PACK_STR = '!I'
|
||||
NX_ROLE_SIZE = 20
|
||||
assert (calcsize(NX_ROLE_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_ROLE_SIZE)
|
||||
|
||||
NX_FLOW_MOD_PACK_STR = '!Q4HI3H6x'
|
||||
NX_FLOW_MOD_SIZE = 48
|
||||
assert (calcsize(NX_FLOW_MOD_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_FLOW_MOD_SIZE)
|
||||
|
||||
NX_SET_FLOW_FORMAT_PACK_STR = '!I'
|
||||
NX_SET_FLOW_FORMAT_SIZE = 20
|
||||
assert (calcsize(NX_SET_FLOW_FORMAT_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_SET_FLOW_FORMAT_SIZE)
|
||||
|
||||
NX_FLOW_REMOVED_PACK_STR = '!QHBxIIHHQQ'
|
||||
NX_FLOW_REMOVED_SIZE = 56
|
||||
assert (calcsize(NX_FLOW_REMOVED_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_FLOW_REMOVED_SIZE)
|
||||
|
||||
NX_FLOW_MOD_TABLE_ID_PACK_STR = '!B7x'
|
||||
NX_FLOW_MOD_TABLE_ID_SIZE = 24
|
||||
assert (calcsize(NX_FLOW_MOD_TABLE_ID_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_FLOW_MOD_TABLE_ID_SIZE)
|
||||
|
||||
NX_SET_PACKET_IN_FORMAT_PACK_STR = '!I'
|
||||
NX_SET_PACKET_IN_FORMAT_SIZE = 20
|
||||
assert (calcsize(NX_SET_PACKET_IN_FORMAT_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_SET_PACKET_IN_FORMAT_SIZE)
|
||||
|
||||
NX_PACKET_IN_PACK_STR = '!IHBBQH6x'
|
||||
NX_PACKET_IN_SIZE = 40
|
||||
assert (calcsize(NX_PACKET_IN_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_PACKET_IN_SIZE)
|
||||
|
||||
NX_ASYNC_CONFIG_PACK_STR = '!IIIIII'
|
||||
NX_ASYNC_CONFIG_SIZE = 40
|
||||
assert (calcsize(NX_ASYNC_CONFIG_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_ASYNC_CONFIG_SIZE)
|
||||
|
||||
NX_CONTROLLER_ID_PACK_STR = '!6xH'
|
||||
NX_CONTROLLER_ID_SIZE = 24
|
||||
assert (calcsize(NX_CONTROLLER_ID_PACK_STR) +
|
||||
NICIRA_HEADER_SIZE == NX_CONTROLLER_ID_SIZE)
|
||||
|
||||
NX_STATS_MSG_PACK_STR = '!I4x'
|
||||
NX_STATS_MSG0_SIZE = 8
|
||||
assert calcsize(NX_STATS_MSG_PACK_STR) == NX_STATS_MSG0_SIZE
|
||||
NX_STATS_MSG_SIZE = 24
|
||||
assert (calcsize(NX_STATS_MSG_PACK_STR) + OFP_VENDOR_STATS_MSG_SIZE ==
|
||||
NX_STATS_MSG_SIZE)
|
||||
|
||||
NX_FLOW_STATS_REQUEST_PACK_STR = '!2HB3x'
|
||||
NX_FLOW_STATS_REQUEST_SIZE = 8
|
||||
assert (calcsize(NX_FLOW_STATS_REQUEST_PACK_STR) ==
|
||||
NX_FLOW_STATS_REQUEST_SIZE)
|
||||
|
||||
NX_FLOW_STATS_PACK_STR = '!HBxIIHHHHHHQQQ'
|
||||
NX_FLOW_STATS_SIZE = 48
|
||||
assert calcsize(NX_FLOW_STATS_PACK_STR) == NX_FLOW_STATS_SIZE
|
||||
|
||||
NX_AGGREGATE_STATS_REQUEST_PACK_STR = '!2HB3x'
|
||||
NX_AGGREGATE_STATS_REQUEST_SIZE = 8
|
||||
assert (calcsize(NX_AGGREGATE_STATS_REQUEST_PACK_STR) ==
|
||||
NX_AGGREGATE_STATS_REQUEST_SIZE)
|
||||
|
||||
NX_AGGREGATE_STATS_REPLY_PACK_STR = '!QQI4x'
|
||||
NX_AGGREGATE_STATS_REPLY_SIZE = 24
|
||||
assert (calcsize(NX_AGGREGATE_STATS_REPLY_PACK_STR) ==
|
||||
NX_AGGREGATE_STATS_REPLY_SIZE)
|
||||
|
||||
|
||||
def nxm_header__(vendor, field, hasmask, length):
|
||||
return (vendor << 16) | (field << 9) | (hasmask << 8) | length
|
||||
@ -787,27 +594,4 @@ def nxm_nx_reg_w(idx):
|
||||
|
||||
NXM_HEADER_PACK_STRING = '!I'
|
||||
|
||||
# enum nx_hash_fields
|
||||
NX_HASH_FIELDS_ETH_SRC = 0
|
||||
NX_HASH_FIELDS_SYMMETRIC_L4 = 1
|
||||
|
||||
# enum nx_mp_algorithm
|
||||
NX_MP_ALG_MODULO_N = 0
|
||||
NX_MP_ALG_HASH_THRESHOLD = 1
|
||||
NX_MP_ALG_HRW = 2
|
||||
NX_MP_ALG_ITER_HASH = 3
|
||||
|
||||
# enum nx_bd_algorithm
|
||||
NX_BD_ALG_ACTIVE_BACKUP = 0
|
||||
NX_BD_ALG_HRW = 1
|
||||
|
||||
# nx_learn constants
|
||||
NX_LEARN_N_BITS_MASK = 0x3ff
|
||||
NX_LEARN_SRC_FIELD = 0 << 13 # Copy from field.
|
||||
NX_LEARN_SRC_IMMEDIATE = 1 << 13 # Copy from immediate value.
|
||||
NX_LEARN_SRC_MASK = 1 << 13
|
||||
NX_LEARN_DST_MATCH = 0 << 11 # Add match criterion.
|
||||
NX_LEARN_DST_LOAD = 1 << 11 # Add NXAST_REG_LOAD action
|
||||
NX_LEARN_DST_OUTPUT = 2 << 11 # Add OFPAT_OUTPUT action.
|
||||
NX_LEARN_DST_RESERVED = 3 << 11 # Not yet defined.
|
||||
NX_LEARN_DST_MASK = 3 << 11
|
||||
from nicira_ext import * # For API compat
|
||||
|
Loading…
Reference in New Issue
Block a user