TSG-13837 decrypted traffic steering适配mrzcpd新增MR_BUFF_USER_0类型
This commit is contained in:
@@ -15,12 +15,13 @@
|
||||
#include "ctrl_packet.h"
|
||||
#include "global_metrics.h"
|
||||
|
||||
#define RX_BURST_MAX 128
|
||||
#define MR_MASK_DECRYPTED 0x01
|
||||
|
||||
/******************************************************************************
|
||||
* struct
|
||||
******************************************************************************/
|
||||
|
||||
#define RX_BURST_MAX 128
|
||||
|
||||
struct config
|
||||
{
|
||||
int bypass_all_traffic;
|
||||
@@ -91,13 +92,20 @@ int mbuff_get_metadata(marsio_buff_t *rx_buff, struct metadata *meta)
|
||||
else
|
||||
{
|
||||
meta->is_ctrl_pkt = 0;
|
||||
#if 0
|
||||
if (marsio_buff_get_metadata(rx_buff, MR_IS_DECRYPTED, &(meta->is_decrypted), sizeof(meta->is_decrypted)) <= 0)
|
||||
uint16_t user_data = 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);
|
||||
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]));
|
||||
@@ -143,14 +151,17 @@ int mbuff_set_metadata(marsio_buff_t *tx_buff, struct metadata *meta)
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO
|
||||
#if 0
|
||||
if (marsio_buff_set_metadata(tx_buff, MR_IS_DECRYPTED, &(meta->is_decrypted), sizeof(meta->is_decrypted)) != 0)
|
||||
uint16_t user_data = 0;
|
||||
if (meta->is_decrypted)
|
||||
{
|
||||
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);
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if (meta->sids.num > 0)
|
||||
|
||||
@@ -55,6 +55,7 @@ struct mrb_metadata
|
||||
uint16_t port_egress;
|
||||
|
||||
uint16_t link_db_index;
|
||||
uint16_t user_data_0;
|
||||
};
|
||||
|
||||
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:
|
||||
mrb_metadata->payload_offset = *(uint16_t *)data;
|
||||
return 0;
|
||||
case MR_BUFF_USER_0:
|
||||
mrb_metadata->user_data_0 = *(uint16_t *)data;
|
||||
return 0;
|
||||
default:
|
||||
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;
|
||||
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:
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,8 @@ enum mr_buff_metadata_type
|
||||
MR_BUFF_ROUTE_CTX = 2,
|
||||
MR_BUFF_SESSION_ID = 3,
|
||||
MR_BUFF_DIR = 4,
|
||||
MR_BUFF_PAYLOAD_OFFSET = 5
|
||||
MR_BUFF_PAYLOAD_OFFSET = 5,
|
||||
MR_BUFF_USER_0 = 254,
|
||||
};
|
||||
|
||||
struct mr_instance *marsio_create();
|
||||
|
||||
Reference in New Issue
Block a user