diff options
| -rw-r--r-- | app/src/mrb.c | 6 | ||||
| -rw-r--r-- | include/internal/mrb_define.h | 9 | ||||
| -rw-r--r-- | service/include/sc_pdump.h | 2 | ||||
| -rw-r--r-- | service/src/monit.c | 6 | ||||
| -rw-r--r-- | service/src/node_etherfabric.c | 206 | ||||
| -rw-r--r-- | tools/tcpdump/pdump.c | 2 |
6 files changed, 115 insertions, 116 deletions
diff --git a/app/src/mrb.c b/app/src/mrb.c index eee0787..d2443a8 100644 --- a/app/src/mrb.c +++ b/app/src/mrb.c @@ -676,7 +676,7 @@ struct mrb_metadata_route_ctx uint8_t link_id; uint16_t port_ingress; uint16_t port_egress; - uint16_t link_db_index; + uint16_t peer_index; uint32_t hash_usr; }; @@ -699,7 +699,7 @@ int marsio_buff_get_metadata(marsio_buff_t * m, enum mr_buff_metadata_type type, route_ctx->dir = mrb_metadata->dir; route_ctx->port_ingress = mrb_metadata->port_ingress; route_ctx->port_egress = mrb_metadata->port_egress; - route_ctx->link_db_index = mrb_metadata->link_db_index; + route_ctx->peer_index = mrb_metadata->peer_index; route_ctx->link_id = mrb_metadata->link_id; route_ctx->hash_usr = mbuf->hash.usr; } @@ -769,7 +769,7 @@ int marsio_buff_set_metadata(marsio_buff_t * m, enum mr_buff_metadata_type type, mrb_metadata->dir = route_ctx->dir; mrb_metadata->port_ingress = route_ctx->port_ingress; mrb_metadata->port_egress = route_ctx->port_egress; - mrb_metadata->link_db_index = route_ctx->link_db_index; + mrb_metadata->peer_index = route_ctx->peer_index; mrb_metadata->link_id = route_ctx->link_id; mbuf->hash.usr = route_ctx->hash_usr; return 0; diff --git a/include/internal/mrb_define.h b/include/internal/mrb_define.h index af6a1c4..e9013f5 100644 --- a/include/internal/mrb_define.h +++ b/include/internal/mrb_define.h @@ -43,8 +43,8 @@ struct mrb_metadata uint16_t port_ingress; uint16_t port_egress; - /* for EF service */ - uint16_t link_db_index; + /* for EF adapter */ + uint16_t peer_index; /* pkt_parser result */ struct pkt_parser_result pkt_parser_result; @@ -69,8 +69,7 @@ struct mrb_zone_info #define mrbuf_priv(m) ((struct mrb_priv_zone *)((char *)m + sizeof(struct rte_mbuf))) #define mrbuf_cz(m, k) (&(mrbuf_priv(m)->idx[k])) -//#define mrbuf_cz_data(m, k) ((void *)((char *)mrbuf_priv(m) + mrbuf_cz(m, k)->offset)) - +// #define mrbuf_cz_data(m, k) ((void *)((char *)mrbuf_priv(m) + mrbuf_cz(m, k)->offset)) #define mrbuf_cz_data(m, k) ((void *)((char *)mrbuf_priv(m))) -#define mrbuf_cz_num(m) (mrbuf_priv(m)->cz_num)
\ No newline at end of file +#define mrbuf_cz_num(m) (mrbuf_priv(m)->cz_num) diff --git a/service/include/sc_pdump.h b/service/include/sc_pdump.h index 19dd2cf..19f6389 100644 --- a/service/include/sc_pdump.h +++ b/service/include/sc_pdump.h @@ -19,7 +19,7 @@ #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 " + "peer_index:%u " enum { diff --git a/service/src/monit.c b/service/src/monit.c index 030fd44..54f6d19 100644 --- a/service/src/monit.c +++ b/service/src/monit.c @@ -299,7 +299,7 @@ extern cJSON * health_check_ask_node_monit_loop(struct sc_main * sc); extern cJSON * health_check_deal_answer_node_monit_loop(struct sc_main * sc); extern cJSON * health_check_session_monit_loop(struct sc_main * sc); extern cJSON * forwarder_table_monit_loop(struct sc_main * sc); -extern cJSON * link_db_monit_loop(struct sc_main * sc); +extern cJSON * peer_monit_loop(struct sc_main * sc); static cJSON * monit_root(struct sc_main * sc) { @@ -329,7 +329,7 @@ static cJSON * monit_root(struct sc_main * sc) cJSON_AddItemToObject(j_root, "health-check-dealanswer", health_check_deal_answer_node_monit_loop(sc)); cJSON_AddItemToObject(j_root, "health-session-state", health_check_session_monit_loop(sc)); cJSON_AddItemToObject(j_root, "forwarder-table", forwarder_table_monit_loop(sc)); - cJSON_AddItemToObject(j_root, "link-db-table", link_db_monit_loop(sc)); + cJSON_AddItemToObject(j_root, "peer-table", peer_monit_loop(sc)); return j_root; } @@ -353,4 +353,4 @@ int sc_monit_loop(struct sc_main * sc) cJSON_Delete(j_root); return 0; -}
\ No newline at end of file +} diff --git a/service/src/node_etherfabric.c b/service/src/node_etherfabric.c index 023fdb6..08130fa 100644 --- a/service/src/node_etherfabric.c +++ b/service/src/node_etherfabric.c @@ -16,7 +16,7 @@ #define MR_ETHERFABRIC_INVALID_CONF_ARG 0 #define MR_ETHERFABRIC_LISTEN_PORT htons(4789) -#define MR_LINK_DB_HASH_ENTRIES 1024 +#define MR_PEER_HASH_ENTRIES 1024 #define MR_ETHERFABRIC_INGRESS_STAT_ADD(st, graph_id, counter, value) \ do \ @@ -60,8 +60,8 @@ struct etherfabric_adapter struct mr_dev_desc * listen_device; }; -/* Link db key */ -union link_db_key { +/* Peer key */ +union peer_key { struct { uint32_t ip_src; @@ -70,8 +70,8 @@ union link_db_key { xmm_t xmm; }; -/* Link db struct */ -struct link_db +/* Peer struct */ +struct peer { uint32_t etherfabric_ip_v4; rte_atomic64_t state; @@ -85,9 +85,9 @@ struct etherfabric_mgr uint32_t nr_sid; uint32_t sid_range_start; uint32_t sid_range_end; - struct rte_hash * link_db_hash; + struct rte_hash * peer_hash; struct etherfabric_adapter * etherfabric_adapter_array; - struct link_db link_db_array[MR_LINK_DB_HASH_ENTRIES]; + struct peer peer_array[MR_PEER_HASH_ENTRIES]; }; /* Etherfabric ingress stat struct */ @@ -97,7 +97,7 @@ struct etherfabric_ingress_stat volatile uint64_t drop_for_unexpected; volatile uint64_t drop_for_adapter_not_exist; volatile uint64_t drop_for_append_sid_err; - volatile uint64_t link_db_add_err_pkts; + volatile uint64_t drop_for_peer_add_err; volatile uint64_t to_classifier; } __rte_cache_aligned; @@ -112,7 +112,7 @@ struct etherfabric_egress_stat /* Etherfabric main struct */ struct node_etherfabric_main { - struct etherfabric_mgr etherfabric_manage; + struct etherfabric_mgr etherfabric_mgr; struct etherfabric_ingress_stat ingress_stat_per_graph[RTE_MAX_LCORE]; struct etherfabric_egress_stat egress_stat_per_graph[RTE_MAX_LCORE]; }; @@ -131,14 +131,14 @@ unsigned int ef_get_max_rule_num() int ef_adapter_id_check(uint32_t ef_adapter_id) { /* Etherfabric rule id is continuous */ - if (ef_adapter_id >= g_etherfabric_main->etherfabric_manage.nr_adapters) + if (ef_adapter_id >= g_etherfabric_main->etherfabric_mgr.nr_adapters) return RT_ERR; return RT_SUCCESS; } /* Parsing the etherfabric adapter config */ -int parser_etherfabric_adapter_conf(struct sc_main * sc, struct etherfabric_mgr * etherfabric_manage) +int parser_etherfabric_adapter_conf(struct sc_main * sc, struct etherfabric_mgr * etherfabric_mgr) { int ret = 0; uint16_t nr_adapters = 0; @@ -211,7 +211,7 @@ int parser_etherfabric_adapter_conf(struct sc_main * sc, struct etherfabric_mgr /* Save The Listen Device Port Index */ struct etherfabric_adapter * _etherfabric_adapter_item = - ðerfabric_manage->etherfabric_adapter_array[nr_adapters]; + ðerfabric_mgr->etherfabric_adapter_array[nr_adapters]; _etherfabric_adapter_item->mode = MODE_VIRTUAL_WIRE; _etherfabric_adapter_item->listen_device = dev_desc; nr_adapters++; @@ -229,18 +229,18 @@ int parser_etherfabric_adapter_conf(struct sc_main * sc, struct etherfabric_mgr forwarder_table_inserter(sid, FORWARDER_TYPE_ETHERFABRIC); /* Save the etherfabric adapter conf num */ - etherfabric_manage->nr_adapters = nr_adapters; - etherfabric_manage->nr_sid = nr_sid; - etherfabric_manage->sid_range_start = sid_range_start; - etherfabric_manage->sid_range_end = sid_range_end; + etherfabric_mgr->nr_adapters = nr_adapters; + etherfabric_mgr->nr_sid = nr_sid; + etherfabric_mgr->sid_range_start = sid_range_start; + etherfabric_mgr->sid_range_end = sid_range_end; return RT_SUCCESS; } -/* link db hash crc */ -static inline uint32_t link_db_hash_crc(const void * data, __rte_unused uint32_t data_len, uint32_t init_val) +/* Peer hash crc */ +static inline uint32_t peer_hash_crc(const void * data, __rte_unused uint32_t data_len, uint32_t init_val) { /* use the etherfabric's ip addressd as key */ - const union link_db_key * key = data; + const union peer_key * key = data; return key->ip_src; const uint32_t * mac_0 = (const uint32_t *)&key->mac_src.addr_bytes[0]; @@ -254,45 +254,45 @@ static inline uint32_t link_db_hash_crc(const void * data, __rte_unused uint32_t } /* Initialize exact match (hash) parameters */ -int link_db_setup_hash(struct etherfabric_mgr * etherfabric_manage) +int peer_setup_hash(struct etherfabric_mgr * etherfabric_mgr) { - struct rte_hash_parameters link_db_hash_params = { - .name = "link_db_hash", - .entries = MR_LINK_DB_HASH_ENTRIES, - .key_len = sizeof(union link_db_key), - .hash_func = link_db_hash_crc, + struct rte_hash_parameters peer_hash_params = { + .name = "peer_hash", + .entries = MR_PEER_HASH_ENTRIES, + .key_len = sizeof(union peer_key), + .hash_func = peer_hash_crc, .hash_func_init_val = 0, .socket_id = 0, .extra_flag = RTE_HASH_EXTRA_FLAGS_TRANS_MEM_SUPPORT | RTE_HASH_EXTRA_FLAGS_TRANS_MEM_SUPPORT | RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY_LF, }; - etherfabric_manage->link_db_hash = rte_hash_create(&link_db_hash_params); - if (etherfabric_manage->link_db_hash != NULL) + etherfabric_mgr->peer_hash = rte_hash_create(&peer_hash_params); + if (etherfabric_mgr->peer_hash != NULL) { return RT_SUCCESS; } - MR_ERROR("Unable to create the link db hash on socket 0 ."); + MR_ERROR("Unable to create the peer hash on socket 0 ."); return RT_ERR; } /* Dump Eeherfabric adapter config */ -void dump_etherfabric_adapter_config(struct etherfabric_mgr * etherfabric_manage) +void dump_etherfabric_adapter_config(struct etherfabric_mgr * etherfabric_mgr) { - if (etherfabric_manage->nr_adapters == 0) + if (etherfabric_mgr->nr_adapters == 0) return; MR_INFO(" "); MR_INFO("Etherfabric adapters config:"); - MR_INFO(" Total num : %u", etherfabric_manage->nr_adapters); - MR_INFO(" Sid num : %u", etherfabric_manage->nr_sid); - MR_INFO(" Sid range start : %u", etherfabric_manage->sid_range_start); - MR_INFO(" Sid range end : %u", etherfabric_manage->sid_range_end); + MR_INFO(" Total num : %u", etherfabric_mgr->nr_adapters); + MR_INFO(" Sid num : %u", etherfabric_mgr->nr_sid); + MR_INFO(" Sid range start : %u", etherfabric_mgr->sid_range_start); + MR_INFO(" Sid range end : %u", etherfabric_mgr->sid_range_end); - for (int i = 0; i < etherfabric_manage->nr_adapters; i++) + for (int i = 0; i < etherfabric_mgr->nr_adapters; i++) { - struct etherfabric_adapter * etherfabric_adapter_item = ðerfabric_manage->etherfabric_adapter_array[i]; + struct etherfabric_adapter * etherfabric_adapter_item = ðerfabric_mgr->etherfabric_adapter_array[i]; MR_INFO(" Id : %d", i); switch (etherfabric_adapter_item->mode) @@ -319,27 +319,27 @@ int etherfabric_init(struct sc_main * sc) struct node_etherfabric_main * _etherfabric_main = ZMALLOC(sizeof(struct node_etherfabric_main)); MR_VERIFY_MALLOC(_etherfabric_main); - struct etherfabric_mgr * etherfabric_manage = &_etherfabric_main->etherfabric_manage; - etherfabric_manage->etherfabric_adapter_array = ZMALLOC(sizeof(struct etherfabric_adapter) * g_ef_max_entry); - MR_VERIFY_MALLOC(etherfabric_manage->etherfabric_adapter_array); + struct etherfabric_mgr * etherfabric_mgr = &_etherfabric_main->etherfabric_mgr; + etherfabric_mgr->etherfabric_adapter_array = ZMALLOC(sizeof(struct etherfabric_adapter) * g_ef_max_entry); + MR_VERIFY_MALLOC(etherfabric_mgr->etherfabric_adapter_array); sc->etherfabric_node_main = _etherfabric_main; g_etherfabric_main = _etherfabric_main; /* Parsing the etherfabric adapter config */ - if (parser_etherfabric_adapter_conf(sc, etherfabric_manage) != RT_SUCCESS) + if (parser_etherfabric_adapter_conf(sc, etherfabric_mgr) != RT_SUCCESS) return RT_ERR; /* Dump the etherfabric adapter config */ - dump_etherfabric_adapter_config(etherfabric_manage); + dump_etherfabric_adapter_config(etherfabric_mgr); - /* Setup link db hash */ - if (link_db_setup_hash(etherfabric_manage) != RT_SUCCESS) + /* Setup peer hash */ + if (peer_setup_hash(etherfabric_mgr) != RT_SUCCESS) return RT_ERR; /* Init state */ - for (int index = 0; index < MR_LINK_DB_HASH_ENTRIES; index++) - rte_atomic64_init(ðerfabric_manage->link_db_array[index].state); + for (int index = 0; index < MR_PEER_HASH_ENTRIES; index++) + rte_atomic64_init(ðerfabric_mgr->peer_array[index].state); return RT_SUCCESS; } @@ -360,41 +360,41 @@ int etherfabric_adapter_lookup(struct etherfabric_mgr * mgr, uint32_t dst_addr, return RT_ERR; } -/* Match link db */ -int match_link_db(struct etherfabric_mgr * etherfabric_manage, struct rte_ether_hdr * ether_hdr, - struct rte_ipv4_hdr * ipv4_hdr, struct g_vxlan_hdr * g_vxlan_hdr) +/* Peer lookup and add */ +int peer_lookup_and_add(struct rte_hash * peer_hash, struct peer * peer_array, struct rte_ether_addr * src_addr, + uint32_t ip_src) { - union link_db_key key = {}; + union peer_key key = {}; - key.ip_src = ipv4_hdr->src_addr; - rte_ether_addr_copy(ðer_hdr->src_addr, &key.mac_src); + key.ip_src = ip_src; + rte_ether_addr_copy(src_addr, &key.mac_src); /* Look up the hash table */ - int ret = rte_hash_lookup(etherfabric_manage->link_db_hash, (const void *)&key); + int ret = rte_hash_lookup(peer_hash, (const void *)&key); if (ret >= 0) return ret; - /* Add the new link db */ - ret = rte_hash_add_key(etherfabric_manage->link_db_hash, (void *)&key); + /* Add the new peer */ + ret = rte_hash_add_key(peer_hash, (void *)&key); if (ret < 0) return RT_ERR; - /* Set the link db state */ - struct link_db * _link_db_item = ðerfabric_manage->link_db_array[ret]; - if (rte_atomic64_test_and_set(&_link_db_item->state)) + /* Set the peer state */ + struct peer * peer_item = &peer_array[ret]; + if (rte_atomic64_test_and_set(&peer_item->state)) { - /* Save the link db info */ - _link_db_item->etherfabric_ip_v4 = key.ip_src; - rte_ether_addr_copy(&key.mac_src, &_link_db_item->etherfabric_mac_addr); + /* Save the peer info */ + peer_item->etherfabric_ip_v4 = key.ip_src; + rte_ether_addr_copy(&key.mac_src, &peer_item->etherfabric_mac_addr); - /* Dump link db for new add */ + /* Dump peer for new add */ char str_in_addr[INET_ADDRSTRLEN]; - inet_ntop(AF_INET, &_link_db_item->etherfabric_ip_v4, str_in_addr, sizeof(str_in_addr)); + inet_ntop(AF_INET, &peer_item->etherfabric_ip_v4, str_in_addr, sizeof(str_in_addr)); char str_mac_addr[RTE_ETHER_ADDR_FMT_SIZE]; - rte_ether_format_addr(str_mac_addr, sizeof(str_mac_addr), &_link_db_item->etherfabric_mac_addr); + rte_ether_format_addr(str_mac_addr, sizeof(str_mac_addr), &peer_item->etherfabric_mac_addr); - MR_INFO("Link db add, ip addr:%s, mac addr:%s", str_in_addr, str_mac_addr); + MR_INFO("Peer add, ip addr:%s, mac addr:%s", str_in_addr, str_mac_addr); } return ret; @@ -427,7 +427,7 @@ static __rte_always_inline uint16_t etherfabric_ingress_node_process(struct rte_ struct rte_mbuf * mbuf = NULL; struct rte_mbuf ** pkts = (struct rte_mbuf **)objs; struct node_etherfabric_main * etherfabric_main = g_etherfabric_main; - struct etherfabric_mgr * etherfabric_manage = &g_etherfabric_main->etherfabric_manage; + struct etherfabric_mgr * etherfabric_mgr = &g_etherfabric_main->etherfabric_mgr; struct etherfabric_ingress_stat stat = {}; /* Single packet processing */ @@ -473,9 +473,9 @@ static __rte_always_inline uint16_t etherfabric_ingress_node_process(struct rte_ assert(outer_udp_hdr != NULL); assert(outer_g_vxlan_hdr != NULL); - /* Match etherfabric adapter conf */ + /* Etherfabric adapter lookup */ uint16_t adapter_id = 0; - int ret = etherfabric_adapter_lookup(etherfabric_manage, outer_ipv4_hdr->dst_addr, &adapter_id); + int ret = etherfabric_adapter_lookup(etherfabric_mgr, outer_ipv4_hdr->dst_addr, &adapter_id); if (unlikely(ret == RT_ERR)) { stat.drop_for_adapter_not_exist++; @@ -483,19 +483,18 @@ static __rte_always_inline uint16_t etherfabric_ingress_node_process(struct rte_ goto node_enqueue; } -#if 0 - /* Match link db */ - int link_db_index = match_link_db(etherfabric_manage, outer_ether_hdr, outer_ipv4_hdr, outer_g_vxlan_hdr); - if (unlikely(link_db_index == RT_ERR)) + /* Peer lookup and add */ + int peer_index = peer_lookup_and_add(etherfabric_mgr->peer_hash, etherfabric_mgr->peer_array, + &outer_ether_hdr->src_addr, outer_ipv4_hdr->src_addr); + if (unlikely(peer_index == RT_ERR)) { - MR_ETHERFABRIC_INGRESS_STAT_ADD(etherfabric_main, graph_id, link_db_add_err_pkts, 1); + stat.drop_for_peer_add_err++; next_node_index = ETHERFABRIC_INGRESS_NEXT_PKT_DROP; goto node_enqueue; } -#endif /* Insert sid*/ - uint16_t sids[1] = {etherfabric_manage->sid_range_start + adapter_id}; + uint16_t sids[1] = {etherfabric_mgr->sid_range_start + adapter_id}; if (unlikely(insert_sid(private_ctrlzone, 1, sids) == RT_ERR)) { stat.drop_for_append_sid_err++; @@ -503,12 +502,12 @@ static __rte_always_inline uint16_t etherfabric_ingress_node_process(struct rte_ goto node_enqueue; } - /* Fill link db index and dir */ + /* Fill peer index and dir */ private_ctrlzone->service_type = SERVICE_TYPE_EF; private_ctrlzone->service_id = adapter_id; private_ctrlzone->link_id = outer_g_vxlan_hdr->link_id; private_ctrlzone->dir = outer_g_vxlan_hdr->dir; - private_ctrlzone->link_db_index = (uint16_t)0; + private_ctrlzone->peer_index = (uint16_t)peer_index; /* swap the outer mac and ip addr */ vxlan_encap_forwarded_pkt(mbuf); @@ -551,6 +550,7 @@ static __rte_always_inline uint16_t etherfabric_ingress_node_process(struct rte_ graph_stat->drop_for_unexpected += stat.drop_for_unexpected; graph_stat->drop_for_adapter_not_exist += stat.drop_for_adapter_not_exist; graph_stat->drop_for_append_sid_err += stat.drop_for_append_sid_err; + graph_stat->drop_for_peer_add_err += stat.drop_for_peer_add_err; graph_stat->to_classifier += stat.to_classifier; return cnt; @@ -577,7 +577,7 @@ const static int etherfabric_encap_len = sizeof(struct rte_ether_hdr) + sizeof(s /* Fill Ether IPv4 Udp Vxlan hdr for the constructed packet */ static inline int vxlan_encap_constructed_pkt(struct sc_main * sc, struct rte_mbuf * mbuf, - struct mrb_metadata * private_ctrlzone, struct link_db * _link_db_item, + struct mrb_metadata * private_ctrlzone, struct peer * peer_item, struct mr_dev_desc * dev_desc) { /* construct the packet by the order of inner to outer */ @@ -620,7 +620,7 @@ static inline int vxlan_encap_constructed_pkt(struct sc_main * sc, struct rte_mb p_ipv4_hdr->time_to_live = 0x40; p_ipv4_hdr->next_proto_id = IPPROTO_UDP; p_ipv4_hdr->src_addr = dev_desc->in_addr.s_addr; - p_ipv4_hdr->dst_addr = _link_db_item->etherfabric_ip_v4; + p_ipv4_hdr->dst_addr = peer_item->etherfabric_ip_v4; p_ipv4_hdr->total_length = htons(rte_pktmbuf_pkt_len(mbuf)); p_ipv4_hdr->hdr_checksum = 0; @@ -630,7 +630,7 @@ static inline int vxlan_encap_constructed_pkt(struct sc_main * sc, struct rte_mb struct rte_ether_hdr * eth_hdr = (struct rte_ether_hdr *)rte_pktmbuf_prepend(mbuf, sizeof(struct rte_ether_hdr)); eth_hdr->ether_type = htons(RTE_ETHER_TYPE_IPV4); - rte_ether_addr_copy(&_link_db_item->etherfabric_mac_addr, ð_hdr->dst_addr); + rte_ether_addr_copy(&peer_item->etherfabric_mac_addr, ð_hdr->dst_addr); rte_ether_addr_copy(&dev_desc->eth_addr, ð_hdr->src_addr); return RT_SUCCESS; @@ -647,10 +647,10 @@ static __rte_always_inline uint16_t etherfabric_egress_node_process(struct rte_g struct rte_mbuf * mbuf; struct rte_mbuf ** pkts = (struct rte_mbuf **)objs; struct sc_main * sc = sc_main_get(); - struct etherfabric_mgr * _etherfabric_manage = &g_etherfabric_main->etherfabric_manage; - struct link_db * _link_db_array = _etherfabric_manage->link_db_array; - struct etherfabric_adapter * _etherfabric_adapter_array = _etherfabric_manage->etherfabric_adapter_array; - uint32_t sid_range_start = _etherfabric_manage->sid_range_start; + struct etherfabric_mgr * etherfabric_mgr = &g_etherfabric_main->etherfabric_mgr; + struct peer * peer_array = etherfabric_mgr->peer_array; + struct etherfabric_adapter * _etherfabric_adapter_array = etherfabric_mgr->etherfabric_adapter_array; + uint32_t sid_range_start = etherfabric_mgr->sid_range_start; unsigned int counter_forwarded_packet = 0; unsigned int counter_created_packet = 0; @@ -671,7 +671,7 @@ static __rte_always_inline uint16_t etherfabric_egress_node_process(struct rte_g rte_prefetch0_write(mrbuf_cz_data(pkts[index + 1], MR_NODE_CTRLZONE_ID)); } - struct link_db * _link_db_item = &_link_db_array[mrb_meta->link_db_index]; + struct peer * peer_item = &peer_array[mrb_meta->peer_index]; /* Get etherfabric adapter item */ uint16_t etherfabric_adapter_index = mrb_meta->cur_sid - sid_range_start; @@ -683,10 +683,10 @@ static __rte_always_inline uint16_t etherfabric_egress_node_process(struct rte_g /* Fill Ether IPv4 Udp Vxlan hdr for the pkt */ if (unlikely(mrb_meta->packet_create_from_nf)) { - assert(mrb_meta->link_db_index < MR_LINK_DB_HASH_ENTRIES); - assert(etherfabric_adapter_index < _etherfabric_manage->nr_adapters); + assert(mrb_meta->peer_index < MR_PEER_HASH_ENTRIES); + assert(etherfabric_adapter_index < etherfabric_mgr->nr_adapters); - vxlan_encap_constructed_pkt(sc, mbuf, mrb_meta, _link_db_item, _listen_device); + vxlan_encap_constructed_pkt(sc, mbuf, mrb_meta, peer_item, _listen_device); counter_created_packet++; } else @@ -776,35 +776,35 @@ cJSON * etherfabric_egress_node_monit_loop(struct sc_main * sc) return json_root; } -cJSON * link_db_monit_loop(struct sc_main * sc) +cJSON * peer_monit_loop(struct sc_main * sc) { - int nr_link_db = 0; - struct etherfabric_mgr * etherfabric_manage = &sc->etherfabric_node_main->etherfabric_manage; + int nr_peer = 0; + struct etherfabric_mgr * etherfabric_mgr = &sc->etherfabric_node_main->etherfabric_mgr; cJSON * json_root = cJSON_CreateObject(); - for (int i = 0; i < MR_LINK_DB_HASH_ENTRIES; i++) + for (int i = 0; i < MR_PEER_HASH_ENTRIES; i++) { - struct link_db * _link_db_item = ðerfabric_manage->link_db_array[i]; + struct peer * peer_item = ðerfabric_mgr->peer_array[i]; - if (rte_atomic64_read(&_link_db_item->state) == 0) + if (rte_atomic64_read(&peer_item->state) == 0) continue; char str_in_addr[INET_ADDRSTRLEN]; - inet_ntop(AF_INET, &_link_db_item->etherfabric_ip_v4, str_in_addr, sizeof(str_in_addr)); + inet_ntop(AF_INET, &peer_item->etherfabric_ip_v4, str_in_addr, sizeof(str_in_addr)); char str_mac_addr[RTE_ETHER_ADDR_FMT_SIZE]; - rte_ether_format_addr(str_mac_addr, sizeof(str_mac_addr), &_link_db_item->etherfabric_mac_addr); + rte_ether_format_addr(str_mac_addr, sizeof(str_mac_addr), &peer_item->etherfabric_mac_addr); - cJSON * link_db_obj = cJSON_CreateObject(); - cJSON_AddStringToObject(link_db_obj, "ip addr", str_in_addr); - cJSON_AddStringToObject(link_db_obj, "mac addr", str_mac_addr); + cJSON * peer_obj = cJSON_CreateObject(); + cJSON_AddStringToObject(peer_obj, "ip addr", str_in_addr); + cJSON_AddStringToObject(peer_obj, "mac addr", str_mac_addr); - char link_db_index[MR_STRING_MAX]; - snprintf(link_db_index, sizeof(link_db_index), "link_db:%u", i); - cJSON_AddItemToObject(json_root, link_db_index, link_db_obj); - nr_link_db++; + char peer_index[MR_STRING_MAX]; + snprintf(peer_index, sizeof(peer_index), "peer:%u", i); + cJSON_AddItemToObject(json_root, peer_index, peer_obj); + nr_peer++; } - cJSON_AddNumberToObject(json_root, "total_num", nr_link_db); + cJSON_AddNumberToObject(json_root, "total_num", nr_peer); return json_root; } diff --git a/tools/tcpdump/pdump.c b/tools/tcpdump/pdump.c index d817262..472a853 100644 --- a/tools/tcpdump/pdump.c +++ b/tools/tcpdump/pdump.c @@ -570,7 +570,7 @@ int mr_pcapng_set_opt(struct rte_mbuf * mbuf, uint16_t port_id, uint32_t flags) len = snprintf(str_dir, METADATA_MAX_SIZE, "dir:%u", mrb_metadata->dir); len += snprintf(str_dir + len, METADATA_MAX_SIZE - len, ", ef_link_id:%u", mrb_metadata->link_id); - len += snprintf(str_dir + len, METADATA_MAX_SIZE - len, ", ef_peer_id:%u", mrb_metadata->link_db_index); + len += snprintf(str_dir + len, METADATA_MAX_SIZE - len, ", ef_peer_id:%u", mrb_metadata->peer_index); uint16_t optlen = pcapng_optlen(strlen(str_rx_tx)); optlen += pcapng_optlen(strlen(str_sid)); |
