diff options
| author | songyanchao <[email protected]> | 2024-07-09 03:23:34 +0000 |
|---|---|---|
| committer | songyanchao <[email protected]> | 2024-07-12 02:21:03 +0000 |
| commit | e57941c81a739c323ed79a1c90028b7a516b0c51 (patch) | |
| tree | 2b734f6a110d1b689ec94bc49553053bd208c406 | |
| parent | e9dc535206b70c77d97046514a43e36d58e34cc7 (diff) | |
🎈 perf: Optimize health check conditions in eth ingress node.
Optimize health check conditions in eth ingress node.
| -rw-r--r-- | include/internal/mrb_define.h | 8 | ||||
| -rw-r--r-- | service/src/node_eth_ingress.c | 2 | ||||
| -rw-r--r-- | service/src/node_health_check.c | 1 |
3 files changed, 7 insertions, 4 deletions
diff --git a/include/internal/mrb_define.h b/include/internal/mrb_define.h index 1fd663c..be74c33 100644 --- a/include/internal/mrb_define.h +++ b/include/internal/mrb_define.h @@ -23,7 +23,8 @@ struct mrb_metadata /* status */ uint8_t dir : 1; uint8_t packet_create_from_nf : 1; - uint8_t no_use : 6; + uint8_t health_check : 1; + uint8_t no_use : 5; uint8_t is_ctrlbuf : 1; uint8_t adapter_type : 2; @@ -52,13 +53,14 @@ struct mrb_metadata uint8_t measurement_type; + /* data path trace buffer */ + void * dp_trace_buffer; + RTE_MARKER cacheline1 __rte_cache_min_aligned; /* pkt_parser result */ struct pkt_parser_result pkt_parser_result; - /* data path trace buffer */ - void * dp_trace_buffer; } __rte_cache_aligned; static inline void mrb_metadata_clear(struct mrb_metadata * mrb_meta) diff --git a/service/src/node_eth_ingress.c b/service/src/node_eth_ingress.c index 44f6133..530d41c 100644 --- a/service/src/node_eth_ingress.c +++ b/service/src/node_eth_ingress.c @@ -513,7 +513,7 @@ static __rte_always_inline uint16_t eth_ingress_node_process(struct rte_graph * break; case MR_DEV_ROLE_NF_INTERFACE: { /* check health check pkt */ - if (likely(rte_pktmbuf_mtod(mbuf, struct rte_ether_hdr *)->ether_type != ETH_HEALTH_CHECK_PRIVATE)) + if (likely(mrb_meta->health_check != 1)) { stats.to_forwarder++; next_node_index = ETH_INGRESS_NEXT_FORWARDER; diff --git a/service/src/node_health_check.c b/service/src/node_health_check.c index f8f9afd..3a05782 100644 --- a/service/src/node_health_check.c +++ b/service/src/node_health_check.c @@ -214,6 +214,7 @@ int private_ask_func(struct node_health_check_main * health_check_main, struct h mrb_meta->port_ingress = session->port_id; mrb_meta->port_egress = session->port_id; mrb_meta->packet_create_from_nf = 0; + mrb_meta->health_check = 1; /* Set mbuf pkt_len */ mbuf->data_len = sizeof(struct rte_ether_hdr) + sizeof(struct private_health_check_hdr); |
