diff options
author | Steven Luong <sluong@cisco.com> | 2024-10-24 10:36:10 -0700 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2024-10-30 23:59:35 +0000 |
commit | bfad6b7a8f0a88531923e39f50b70cb5be6d52d7 (patch) | |
tree | 50b7c245019c2e5d89c327242676e6db8dd386a9 /src/vnet | |
parent | 0af11f537f52bbb7af274c8cfd2a1c5c8fcfb0b7 (diff) |
session: sesssion_rule_add_del API parsing port in wrong order
The convention in the binary API is that fields encoded in network order.
For some reason, port was parsed in host order.
Type: fix
Change-Id: I31ea313937097e2547226566b7869be4e28251b8
Signed-off-by: Steven Luong <sluong@cisco.com>
Diffstat (limited to 'src/vnet')
-rw-r--r-- | src/vnet/session/session_api.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c index f0043f90c9a..e54c9b35b4e 100644 --- a/src/vnet/session/session_api.c +++ b/src/vnet/session/session_api.c @@ -1181,8 +1181,8 @@ vl_api_session_rule_add_del_t_handler (vl_api_session_rule_add_del_t * mp) ip_prefix_decode (&mp->lcl, &table_args->lcl); ip_prefix_decode (&mp->rmt, &table_args->rmt); - table_args->lcl_port = mp->lcl_port; - table_args->rmt_port = mp->rmt_port; + table_args->lcl_port = clib_net_to_host_u16 (mp->lcl_port); + table_args->rmt_port = clib_net_to_host_u16 (mp->rmt_port); table_args->action_index = clib_net_to_host_u32 (mp->action_index); table_args->is_add = mp->is_add; mp->tag[sizeof (mp->tag) - 1] = 0; @@ -1232,8 +1232,8 @@ send_session_rule_details4 (mma_rule_16_t * rule, u8 is_local, ip_prefix_encode (&lcl, &rmp->lcl); ip_prefix_encode (&rmt, &rmp->rmt); - rmp->lcl_port = match->lcl_port; - rmp->rmt_port = match->rmt_port; + rmp->lcl_port = clib_host_to_net_u16 (match->lcl_port); + rmp->rmt_port = clib_host_to_net_u16 (match->rmt_port); rmp->action_index = clib_host_to_net_u32 (rule->action_index); rmp->scope = is_local ? SESSION_RULE_SCOPE_API_LOCAL : SESSION_RULE_SCOPE_API_GLOBAL; @@ -1276,8 +1276,8 @@ send_session_rule_details6 (mma_rule_40_t * rule, u8 is_local, ip_prefix_encode (&lcl, &rmp->lcl); ip_prefix_encode (&rmt, &rmp->rmt); - rmp->lcl_port = match->lcl_port; - rmp->rmt_port = match->rmt_port; + rmp->lcl_port = clib_host_to_net_u16 (match->lcl_port); + rmp->rmt_port = clib_host_to_net_u16 (match->rmt_port); rmp->action_index = clib_host_to_net_u32 (rule->action_index); rmp->scope = is_local ? SESSION_RULE_SCOPE_API_LOCAL : SESSION_RULE_SCOPE_API_GLOBAL; |