diff options
| -rw-r--r-- | service/include/sc_pdump.h | 5 | ||||
| -rw-r--r-- | service/src/core.c | 2 | ||||
| -rw-r--r-- | service/src/node_forwarder.c | 31 | ||||
| -rw-r--r-- | service/src/pdump.c | 16 | ||||
| -rw-r--r-- | tools/tcpdump/pdump.c | 4 |
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 { |
