diff options
| author | songyanchao <[email protected]> | 2023-04-28 06:17:30 +0000 |
|---|---|---|
| committer | songyanchao <[email protected]> | 2023-05-06 01:44:44 +0000 |
| commit | 6610119ec758422327c95ee700755e83d09df271 (patch) | |
| tree | 4ee8ffa2884c6d4f07c514240bf11679db81bc5a | |
| parent | 39b1d3445dda30f2bef08cd2ea3f3d1e8b4a4851 (diff) | |
✨ feat: metadata add user0v4.6.22-20230506
metadata add user0
| -rw-r--r-- | app/src/mrb.c | 15 | ||||
| -rw-r--r-- | include/external/marsio.h | 5 | ||||
| -rw-r--r-- | include/internal/mrb_define.h | 1 | ||||
| -rw-r--r-- | tools/tcpdump/pdump.c | 1 |
4 files changed, 21 insertions, 1 deletions
diff --git a/app/src/mrb.c b/app/src/mrb.c index fcb4e63..fa305b3 100644 --- a/app/src/mrb.c +++ b/app/src/mrb.c @@ -725,6 +725,16 @@ int marsio_buff_get_metadata(marsio_buff_t * m, enum mr_buff_metadata_type type, return sizeof(uint16_t); } + case MR_BUFF_USER_0: { + if (unlikely(sz_data < sizeof(uint16_t))) + { + return -ENOMEM; + } + + *(uint16_t *)(data) = (uint16_t)mrb_metadata->user_0; + return sizeof(uint16_t); + } + default: return -ENOTSUP; } @@ -763,6 +773,11 @@ int marsio_buff_set_metadata(marsio_buff_t * m, enum mr_buff_metadata_type type, return 0; } + case MR_BUFF_USER_0: { + mrb_metadata->user_0 = *(uint16_t *)data; + return 0; + } + default: return -ENOTSUP; } diff --git a/include/external/marsio.h b/include/external/marsio.h index f3314c5..1310fb0 100644 --- a/include/external/marsio.h +++ b/include/external/marsio.h @@ -111,6 +111,8 @@ enum mr_buff_metadata_type MR_BUFF_DIR = 4, /* payload offset */ MR_BUFF_PAYLOAD_OFFSET = 5, + /* user 0 */ + MR_BUFF_USER_0 = 254 }; #ifdef __cplusplus @@ -154,7 +156,8 @@ int marsio_thread_init(struct mr_instance * instance); int marsio_destory(struct mr_instance * instance); int marsio_poll_register_eventfd(struct mr_instance * instance, int eventfd, unsigned int tid); -int marsio_poll_wait(struct mr_instance * instance, struct mr_vdev * vdevs[], unsigned int nr_vdevs, unsigned int tid, int timeout); +int marsio_poll_wait(struct mr_instance * instance, struct mr_vdev * vdevs[], unsigned int nr_vdevs, unsigned int tid, + int timeout); struct mr_vdev * marsio_open_device(struct mr_instance * instance, const char * devsym, unsigned int nr_rxstream, unsigned int nr_txstream); diff --git a/include/internal/mrb_define.h b/include/internal/mrb_define.h index d491813..15054af 100644 --- a/include/internal/mrb_define.h +++ b/include/internal/mrb_define.h @@ -28,6 +28,7 @@ struct mrb_metadata uint16_t service_id; uint16_t payload_offset; + uint16_t user_0; /* Session Id */ uint64_t session_id; diff --git a/tools/tcpdump/pdump.c b/tools/tcpdump/pdump.c index 7aae733..d817262 100644 --- a/tools/tcpdump/pdump.c +++ b/tools/tcpdump/pdump.c @@ -555,6 +555,7 @@ int mr_pcapng_set_opt(struct rte_mbuf * mbuf, uint16_t port_id, uint32_t flags) len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", is_nf_create:%u", mrb_metadata->packet_create_from_nf); len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", is_ctrlbuf:%u", mrb_metadata->is_ctrlbuf); len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", payload_offset:%u", mrb_metadata->payload_offset); + len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", user0:%u", mrb_metadata->user_0); len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", session_id:%lu", mrb_metadata->session_id); len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", hash_usr:%u", mbuf->hash.usr); |
