diff options
author | Alexander Chernavin <achernavin@netgate.com> | 2020-09-30 10:36:10 -0400 |
---|---|---|
committer | Ole Tr�an <otroan@employees.org> | 2020-12-08 09:01:59 +0000 |
commit | f6cf57ceb9753ad2c66cc6c3af0e29990ae912d0 (patch) | |
tree | f158d71e050a23fa1f4ab97e517ec6e0f96bec71 | |
parent | e2fe097424fb169dfe01421ff17b8ccd0c26b4a6 (diff) |
misc: fix api in ipfix_classify_table_add/details
In ipfix_classify_table_add_del and ipfix_classify_table_details the
ip_version field has vl_api_address_family_t type. However, there is
no encode/decode for the field in the IPFIX API. Moreover, the IPFIX
code expects the field to contain raw 4 or 6 to indicate the IP
version.
With this change, encode/decode the ip_version field in the IPFIX
API. Also, stop converting transport_protocol between host and network
byte order because it's u8.
Type: fix
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Change-Id: I4051756b8077b4367dd779cb555a34f74f6d7a9d
-rw-r--r-- | src/vnet/ipfix-export/flow_api.c | 8 | ||||
-rw-r--r-- | src/vnet/ipfix-export/ipfix_export.api | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/vnet/ipfix-export/flow_api.c b/src/vnet/ipfix-export/flow_api.c index 226db2686ac..f4b3fc8be3b 100644 --- a/src/vnet/ipfix-export/flow_api.c +++ b/src/vnet/ipfix-export/flow_api.c @@ -264,8 +264,8 @@ static void return; classify_table_index = ntohl (mp->table_id); - ip_version = ntohl (mp->ip_version); - transport_protocol = ntohl (mp->transport_protocol); + ip_version = (mp->ip_version == ADDRESS_IP4) ? 4 : 6; + transport_protocol = mp->transport_protocol; is_add = mp->is_add; if (fcm->src_port == 0) @@ -340,8 +340,8 @@ send_ipfix_classify_table_details (u32 table_index, mp->_vl_msg_id = ntohs (VL_API_IPFIX_CLASSIFY_TABLE_DETAILS); mp->context = context; mp->table_id = htonl (table->classify_table_index); - mp->ip_version = htonl (table->ip_version); - mp->transport_protocol = htonl (table->transport_protocol); + mp->ip_version = (table->ip_version == 4) ? ADDRESS_IP4 : ADDRESS_IP6; + mp->transport_protocol = table->transport_protocol; vl_api_send_msg (reg, (u8 *) mp); } diff --git a/src/vnet/ipfix-export/ipfix_export.api b/src/vnet/ipfix-export/ipfix_export.api index efd967d1844..147d7909252 100644 --- a/src/vnet/ipfix-export/ipfix_export.api +++ b/src/vnet/ipfix-export/ipfix_export.api @@ -13,7 +13,7 @@ * limitations under the License. */ -option version = "2.0.1"; +option version = "2.0.2"; import "vnet/ip/ip_types.api"; |