summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/include/sc_pdump.h5
-rw-r--r--service/src/core.c2
-rw-r--r--service/src/node_forwarder.c31
-rw-r--r--service/src/pdump.c16
-rw-r--r--tools/tcpdump/pdump.c4
5 files changed, 35 insertions, 23 deletions
diff --git a/service/include/sc_pdump.h b/service/include/sc_pdump.h
index 188b386..308bbb2 100644
--- a/service/include/sc_pdump.h
+++ b/service/include/sc_pdump.h
@@ -16,6 +16,11 @@
#define MR_PDUMP_RING_NAME_SIZE 256
#define MR_PDUMP_RING_SIZE 16384
+#define METADATA_INFO \
+ " dir:%u, nf_create:%u, link_id:%u, is_ctrlbuf:%u, payload_offset:%u, session_id:%lu, start_sid:%u, nr_sid:%u, " \
+ "cur_sid:%u, sids:[%u],[%u],[%u],[%u],[%u],[%u],[%u],[%u], port_id_ingress:%u, port_id_egress:%u, " \
+ "link_db_index:%u "
+
enum
{
MR_PDUMP_SUCESS = 0,
diff --git a/service/src/core.c b/service/src/core.c
index 3d1e438..5190240 100644
--- a/service/src/core.c
+++ b/service/src/core.c
@@ -1178,7 +1178,7 @@ int main(int argc, char * argv[])
if (mr_pdump_init(sc) != RT_SUCCESS)
{
- MR_ERROR("Mrpdump initialization failed. ");
+ MR_ERROR("mrpdump initialization failed. ");
ret = EXIT_FAILURE;
goto quit;
}
diff --git a/service/src/node_forwarder.c b/service/src/node_forwarder.c
index cda32cc..b5ae7b4 100644
--- a/service/src/node_forwarder.c
+++ b/service/src/node_forwarder.c
@@ -8,6 +8,7 @@
#include <sc_common.h>
#include <sc_node.h>
#include <sc_node_common.h>
+#include <sc_pdump.h>
#include <sc_vdev.h>
#include <sys/socket.h>
@@ -84,16 +85,16 @@ void forwarder_table_inserter(uint16_t sid, uint16_t type)
}
/* Pop sid */
-int pop_sid(struct mrb_metadata * private_ctrlzone)
+int pop_sid(struct mrb_metadata * mrb_metadata)
{
- if (private_ctrlzone->nr_sid == 0)
+ if (mrb_metadata->nr_sid == 0)
return RT_ERR;
- private_ctrlzone->nr_sid--;
- uint16_t top_sid = private_ctrlzone->sids[private_ctrlzone->start_sid];
- private_ctrlzone->start_sid++;
- /* memmove(private_ctrlzone->sids, private_ctrlzone->sids + 1,
- sizeof(private_ctrlzone->sids[0]) * private_ctrlzone->nr_sid); */
+ mrb_metadata->nr_sid--;
+ uint16_t top_sid = mrb_metadata->sids[mrb_metadata->start_sid];
+ mrb_metadata->start_sid++;
+ /* memmove(mrb_metadata->sids, mrb_metadata->sids + 1,
+ sizeof(mrb_metadata->sids[0]) * mrb_metadata->nr_sid); */
return top_sid;
}
@@ -124,17 +125,27 @@ static __rte_always_inline uint16_t forwarder_node_process(struct rte_graph * gr
FORWARDER_STAT_ADD(_forwarder_main, graph_id, total_pkts, 1);
/* Get ctrlzone */
- struct mrb_metadata * private_ctrlzone = mrbuf_cz_data(mbuf, MR_NODE_CTRLZONE_ID);
+ struct mrb_metadata * mrb_metadata = mrbuf_cz_data(mbuf, MR_NODE_CTRLZONE_ID);
/* Get sid */
- int sid = pop_sid(private_ctrlzone);
+ int sid = pop_sid(mrb_metadata);
if (unlikely(sid == RT_ERR))
{
FORWARDER_STAT_ADD(_forwarder_main, graph_id, pop_sid_err_pkts, 1);
FORWARDER_STAT_ADD(_forwarder_main, graph_id, drop_pkts, 1);
/* dump the packet when pop sid failed */
+ /*
+ char str_metadata[256] = {};
+ sprintf(str_metadata, METADATA_INFO, mrb_metadata->dir, mrb_metadata->packet_create_from_nf,
+ mrb_metadata->link_id, mrb_metadata->is_ctrlbuf, mrb_metadata->payload_offset,
+ mrb_metadata->session_id, mrb_metadata->start_sid, mrb_metadata->nr_sid, mrb_metadata->cur_sid,
+ mrb_metadata->sids[0], mrb_metadata->sids[1], mrb_metadata->sids[2], mrb_metadata->sids[3],
+ mrb_metadata->sids[4], mrb_metadata->sids[5], mrb_metadata->sids[6], mrb_metadata->sids[7],
+ mrb_metadata->port_ingress, mrb_metadata->port_egress, mrb_metadata->link_db_index);
+ MR_ERROR("The pkt metadata : %s .", str_metadata);
rte_pktmbuf_dump(stderr, mbuf, rte_pktmbuf_data_len(mbuf));
+ */
next_node_index = FORWARDER_PKT_DROP;
goto node_enqueue;
@@ -156,7 +167,7 @@ static __rte_always_inline uint16_t forwarder_node_process(struct rte_graph * gr
}
/* Save current sid */
- private_ctrlzone->cur_sid = sid;
+ mrb_metadata->cur_sid = sid;
node_enqueue:
/* Judge the next index whether to change */
diff --git a/service/src/pdump.c b/service/src/pdump.c
index e98f0d4..8f476bb 100644
--- a/service/src/pdump.c
+++ b/service/src/pdump.c
@@ -275,7 +275,7 @@ static int mr_pdump_server(const struct rte_mp_msg * mp_msg, const void * peer)
const struct mr_pdump_request * _cli_req = (const struct mr_pdump_request *)mp_msg->param;
if (mp_msg->len_param != sizeof(*_cli_req))
{
- MR_ERROR("Mrpdump failed to recv from client");
+ MR_ERROR("mrpdump failed to recv from client");
response.err_value = MR_PDUMP_ERR_FOR_MESSAGE_INVALID;
goto done;
}
@@ -285,7 +285,7 @@ static int mr_pdump_server(const struct rte_mp_msg * mp_msg, const void * peer)
dev_desc = mr_dev_desc_lookup(sc->devmgr_main, _cli_req->dev_symbol);
if (dev_desc == NULL)
{
- MR_ERROR("Mrpdump invalid devices(%s).", _cli_req->dev_symbol);
+ MR_ERROR("mrpdump invalid devices(%s).", _cli_req->dev_symbol);
response.err_value = MR_PDUMP_ERR_FOR_PORT_INVALID;
goto done;
}
@@ -304,7 +304,7 @@ done:
mp_resp.num_fds = 0;
if (rte_mp_reply(&mp_resp, peer) < 0)
{
- MR_ERROR("Mrpdump failed to send to client:%s.", strerror(rte_errno));
+ MR_ERROR("mrpdump failed to send to client:%s.", strerror(rte_errno));
return -1;
}
@@ -322,7 +322,7 @@ int mr_pdump_init(struct sc_main * sc)
int ret = rte_mp_action_register(MR_PDUMP_MP, mr_pdump_server);
if (ret < 0)
{
- MR_ERROR("Mrpdump message register failed.");
+ MR_ERROR("mrpdump message register failed.");
return RT_ERR;
}
@@ -332,7 +332,7 @@ int mr_pdump_init(struct sc_main * sc)
RTE_MBUF_DEFAULT_BUF_SIZE, rte_socket_id());
if (mr_pdump_shmdev_mempool == NULL)
{
- MR_ERROR("Mrpdump shmdev mempool create err.");
+ MR_ERROR("mrpdump shmdev mempool create err.");
return RT_ERR;
}
@@ -341,7 +341,7 @@ int mr_pdump_init(struct sc_main * sc)
RTE_MBUF_DEFAULT_BUF_SIZE, rte_socket_id());
if (mr_pdump_phydev_mempool == NULL)
{
- MR_ERROR("Mrpdump phydev mempool create err.");
+ MR_ERROR("mrpdump phydev mempool create err.");
return RT_ERR;
}
@@ -358,7 +358,7 @@ int mr_pdump_init(struct sc_main * sc)
struct rte_ring * rx_ring = rte_ring_create(ring_name, MR_PDUMP_RING_SIZE, rte_socket_id(), 0);
if (rx_ring == NULL)
{
- MR_ERROR("Mrpdump rx ring (%s) create err.", ring_name);
+ MR_ERROR("mrpdump rx ring (%s) create err.", ring_name);
return RT_ERR;
}
@@ -367,7 +367,7 @@ int mr_pdump_init(struct sc_main * sc)
struct rte_ring * tx_ring = rte_ring_create(ring_name, MR_PDUMP_RING_SIZE, rte_socket_id(), 0);
if (tx_ring == NULL)
{
- MR_ERROR("Mrpdump tx ring (%s) create err.", ring_name);
+ MR_ERROR("mrpdump tx ring (%s) create err.", ring_name);
return RT_ERR;
}
diff --git a/tools/tcpdump/pdump.c b/tools/tcpdump/pdump.c
index a5c1b4b..7760ca4 100644
--- a/tools/tcpdump/pdump.c
+++ b/tools/tcpdump/pdump.c
@@ -96,10 +96,6 @@
#define POWEROF2(x) ((((x)-1) & (x)) == 0)
#define METADATA_MAX_SIZE 256
-#define METADATA_INFO \
- " 'dir:%u', 'nf create:%u','link id:%u', 'is ctrlbuf:%u', 'payload offset:%u', 'session id:%lu', 'start " \
- "sid:%u', 'nr sid:%u', 'cur sid:%u', 'sids:[%u],[%u],[%u],[%u],[%u],[%u],[%u],[%u]', 'port_id ingress:%u', " \
- "'port_id egress:%u', 'link db index:%u' "
enum pcap_stream
{