TSG-13837 decrypted traffic steering适配mrzcpd新增MR_BUFF_USER_0类型

This commit is contained in:
luwenpeng
2023-04-21 19:06:12 +08:00
parent 6243971b3f
commit 4136cc3671
3 changed files with 33 additions and 10 deletions

View File

@@ -15,12 +15,13 @@
#include "ctrl_packet.h" #include "ctrl_packet.h"
#include "global_metrics.h" #include "global_metrics.h"
#define RX_BURST_MAX 128
#define MR_MASK_DECRYPTED 0x01
/****************************************************************************** /******************************************************************************
* struct * struct
******************************************************************************/ ******************************************************************************/
#define RX_BURST_MAX 128
struct config struct config
{ {
int bypass_all_traffic; int bypass_all_traffic;
@@ -91,13 +92,20 @@ int mbuff_get_metadata(marsio_buff_t *rx_buff, struct metadata *meta)
else else
{ {
meta->is_ctrl_pkt = 0; meta->is_ctrl_pkt = 0;
#if 0 uint16_t user_data = 0;
if (marsio_buff_get_metadata(rx_buff, MR_IS_DECRYPTED, &(meta->is_decrypted), sizeof(meta->is_decrypted)) <= 0) if (marsio_buff_get_metadata(rx_buff, MR_BUFF_USER_0, &user_data, sizeof(user_data)) <= 0)
{ {
LOG_ERROR("%s: unable to get is_decrypted from metadata", LOG_TAG_PKTIO); LOG_ERROR("%s: unable to get is_decrypted from metadata", LOG_TAG_PKTIO);
return -1; return -1;
} }
#endif if (user_data & MR_MASK_DECRYPTED)
{
meta->is_decrypted = 1;
}
else
{
meta->is_decrypted = 0;
}
} }
meta->sids.num = marsio_buff_get_sid_list(rx_buff, meta->sids.elems, sizeof(meta->sids.elems) / sizeof(meta->sids.elems[0])); meta->sids.num = marsio_buff_get_sid_list(rx_buff, meta->sids.elems, sizeof(meta->sids.elems) / sizeof(meta->sids.elems[0]));
@@ -143,14 +151,17 @@ int mbuff_set_metadata(marsio_buff_t *tx_buff, struct metadata *meta)
} }
else else
{ {
// TODO uint16_t user_data = 0;
#if 0 if (meta->is_decrypted)
if (marsio_buff_set_metadata(tx_buff, MR_IS_DECRYPTED, &(meta->is_decrypted), sizeof(meta->is_decrypted)) != 0) {
user_data = MR_MASK_DECRYPTED;
}
if (marsio_buff_set_metadata(tx_buff, MR_BUFF_USER_0, &user_data, sizeof(user_data)) != 0)
{ {
LOG_ERROR("%s: unable to set is_decrypted for metadata", LOG_TAG_PKTIO); LOG_ERROR("%s: unable to set is_decrypted for metadata", LOG_TAG_PKTIO);
return -1; return -1;
} }
#endif
} }
if (meta->sids.num > 0) if (meta->sids.num > 0)

View File

@@ -55,6 +55,7 @@ struct mrb_metadata
uint16_t port_egress; uint16_t port_egress;
uint16_t link_db_index; uint16_t link_db_index;
uint16_t user_data_0;
}; };
struct mock_marsio_buff_t struct mock_marsio_buff_t
@@ -171,6 +172,9 @@ int marsio_buff_set_metadata(marsio_buff_t *m, enum mr_buff_metadata_type type,
case MR_BUFF_PAYLOAD_OFFSET: case MR_BUFF_PAYLOAD_OFFSET:
mrb_metadata->payload_offset = *(uint16_t *)data; mrb_metadata->payload_offset = *(uint16_t *)data;
return 0; return 0;
case MR_BUFF_USER_0:
mrb_metadata->user_data_0 = *(uint16_t *)data;
return 0;
default: default:
return -1; return -1;
} }
@@ -224,6 +228,13 @@ int marsio_buff_get_metadata(marsio_buff_t *m, enum mr_buff_metadata_type type,
} }
*(uint16_t *)(data) = (uint16_t)mrb_metadata->payload_offset; *(uint16_t *)(data) = (uint16_t)mrb_metadata->payload_offset;
return sizeof(uint16_t); return sizeof(uint16_t);
case MR_BUFF_USER_0:
if (sz_data < sizeof(uint16_t))
{
return -1;
}
*(uint16_t *)(data) = (uint16_t)mrb_metadata->user_data_0;
return sizeof(uint16_t);
default: default:
return -1; return -1;
} }

View File

@@ -38,7 +38,8 @@ enum mr_buff_metadata_type
MR_BUFF_ROUTE_CTX = 2, MR_BUFF_ROUTE_CTX = 2,
MR_BUFF_SESSION_ID = 3, MR_BUFF_SESSION_ID = 3,
MR_BUFF_DIR = 4, MR_BUFF_DIR = 4,
MR_BUFF_PAYLOAD_OFFSET = 5 MR_BUFF_PAYLOAD_OFFSET = 5,
MR_BUFF_USER_0 = 254,
}; };
struct mr_instance *marsio_create(); struct mr_instance *marsio_create();