summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsongyanchao <[email protected]>2023-04-28 06:17:30 +0000
committersongyanchao <[email protected]>2023-05-06 01:44:44 +0000
commit6610119ec758422327c95ee700755e83d09df271 (patch)
tree4ee8ffa2884c6d4f07c514240bf11679db81bc5a
parent39b1d3445dda30f2bef08cd2ea3f3d1e8b4a4851 (diff)
✨ feat: metadata add user0v4.6.22-20230506
metadata add user0
-rw-r--r--app/src/mrb.c15
-rw-r--r--include/external/marsio.h5
-rw-r--r--include/internal/mrb_define.h1
-rw-r--r--tools/tcpdump/pdump.c1
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);