diff options
| author | songyanchao <[email protected]> | 2024-01-04 09:50:41 +0000 |
|---|---|---|
| committer | songyanchao <[email protected]> | 2024-01-05 02:28:26 +0000 |
| commit | a741b3aef7b737a6651bd8223e02bbb75ae20102 (patch) | |
| tree | 40a68ef5272218a9b3ea946c6146ae2d2f81479d | |
| parent | c356a0486ef1beba97bc2954e1f4a0bdafc74941 (diff) | |
🎈 perf(TSG-17959): Rename the VLAN couple to vlan_ingress and vlan_egress.
Rename the VLAN couple to vlan_ingress and vlan_egress.
| -rw-r--r-- | service/src/node_tera.c | 46 | ||||
| -rw-r--r-- | test/classifier_test.py | 3 | ||||
| -rw-r--r-- | test/tera_test.py | 54 |
3 files changed, 66 insertions, 37 deletions
diff --git a/service/src/node_tera.c b/service/src/node_tera.c index 4be558b..aac841a 100644 --- a/service/src/node_tera.c +++ b/service/src/node_tera.c @@ -30,7 +30,8 @@ struct tera_adapter { uint8_t mac_flipping; uint16_t tera_id; - uint16_t vlan_couple[2]; + uint16_t vlan_ingress; + uint16_t vlan_egress; struct mr_dev_desc * listen_device; }; @@ -109,13 +110,20 @@ int tera_config_parse(struct sc_main * sc, struct node_tera_main * tera_main) { snprintf(str_conf_section, sizeof(str_conf_section), "tera_adapter:%d", index); - /* Get vlan couple */ - uint32_t vlan_couple[2]; - ret = MESA_load_profile_uint_range(sc->local_cfgfile, str_conf_section, "vlan_couple", RTE_DIM(vlan_couple), - vlan_couple); + /* Get vlan conf */ + uint32_t vlan_ingress; + ret = MESA_load_profile_uint_nodef(sc->local_cfgfile, str_conf_section, "vlan_ingress", &vlan_ingress); if (ret < 0) continue; + uint32_t vlan_egress; + ret = MESA_load_profile_uint_nodef(sc->local_cfgfile, str_conf_section, "vlan_egress", &vlan_egress); + if (ret < 0) + { + MR_ERROR("The : %s ,No config the 'vlan_egress'.", str_conf_section); + return RT_ERR; + } + /* Get mac flipping */ uint32_t mac_flipping; MESA_load_profile_uint_def(sc->local_cfgfile, str_conf_section, "mac_flipping", &mac_flipping, 0); @@ -141,8 +149,8 @@ int tera_config_parse(struct sc_main * sc, struct node_tera_main * tera_main) /* Save the adapter */ struct tera_adapter * adapter = &tera_main->adapters[nr_adapters]; - adapter->vlan_couple[0] = htons((uint16_t)vlan_couple[0]); - adapter->vlan_couple[1] = htons((uint16_t)vlan_couple[1]); + adapter->vlan_ingress = htons((uint16_t)vlan_ingress); + adapter->vlan_egress = htons((uint16_t)vlan_egress); adapter->mac_flipping = (uint8_t)mac_flipping; adapter->listen_device = dev_desc; adapter->tera_id = nr_adapters; @@ -180,10 +188,9 @@ void tera_info_dump(struct node_tera_main * tera_main) for (int index = 0; index < tera_main->nr_adapters; index++) { struct tera_adapter * adapter = &tera_main->adapters[index]; - MR_INFO( - "Tera adapter, config id: %u, listen device: %s, vlan_couple: [internal: %u,external: %u], mac_flipping:%u", - index, adapter->listen_device->symbol, ntohs(adapter->vlan_couple[0]), ntohs(adapter->vlan_couple[1]), - adapter->mac_flipping); + MR_INFO("Tera adapter, config id: %u, listen device: %s, vlan_ingress: %u, vlan_egress: %u, mac_flipping:%u", + index, adapter->listen_device->symbol, ntohs(adapter->vlan_ingress), ntohs(adapter->vlan_egress), + adapter->mac_flipping); } } @@ -234,9 +241,9 @@ int tera_init(struct sc_main * sc) } /* Tera adapter match */ -static inline __rte_always_inline struct tera_adapter * tera_adapter_match(struct node_tera_main * tera_main, - uint16_t port_id, uint16_t pkt_vlan_id, - uint8_t * out_dir) +static inline struct tera_adapter * tera_adapter_match(const struct node_tera_main * tera_main, uint16_t port_id, + uint16_t pkt_vlan_id, uint8_t * out_dir, + uint16_t * out_vlan_couple) { for (int index = 0; index < tera_main->nr_adapters; index++) { @@ -246,16 +253,18 @@ static inline __rte_always_inline struct tera_adapter * tera_adapter_match(struc continue; } - if (adapter->vlan_couple[0] == pkt_vlan_id) + if (adapter->vlan_ingress == pkt_vlan_id) { /* i to e */ *out_dir = 0; + *out_vlan_couple = adapter->vlan_egress; return adapter; } - else if (adapter->vlan_couple[1] == pkt_vlan_id) + else if (adapter->vlan_egress == pkt_vlan_id) { /* e to i */ *out_dir = 1; + *out_vlan_couple = adapter->vlan_ingress; return adapter; } } @@ -277,6 +286,7 @@ static __rte_always_inline uint16_t tera_ingress_node_process(struct rte_graph * uint8_t prev_dir = UINT8_MAX; uint16_t prev_port_id = UINT16_MAX; uint16_t prev_vlan_id = UINT16_MAX; + uint16_t prev_vlan_couple = UINT16_MAX; struct tera_adapter * prev_adapter = NULL; struct tera_ingress_stats stats = {0}; @@ -308,7 +318,7 @@ static __rte_always_inline uint16_t tera_ingress_node_process(struct rte_graph * { prev_port_id = mrb_meta->port_ingress; prev_vlan_id = vlan_id; - prev_adapter = tera_adapter_match(g_tera_main, prev_port_id, prev_vlan_id, &prev_dir); + prev_adapter = tera_adapter_match(g_tera_main, prev_port_id, prev_vlan_id, &prev_dir, &prev_vlan_couple); } uint16_t next_node_index; @@ -331,7 +341,7 @@ static __rte_always_inline uint16_t tera_ingress_node_process(struct rte_graph * } /* Update the vlan id */ - vlan_hdr->vlan_tci = ((vlan_hdr->vlan_tci & 0x00F0) | prev_adapter->vlan_couple[(prev_dir + 1) % 2]); + vlan_hdr->vlan_tci = ((vlan_hdr->vlan_tci & 0x00F0) | prev_vlan_couple); /* Traffic link id match */ uint16_t traffic_link_id; diff --git a/test/classifier_test.py b/test/classifier_test.py index e31d162..9e358da 100644 --- a/test/classifier_test.py +++ b/test/classifier_test.py @@ -798,7 +798,8 @@ max_rules=64 [tera_adapter:0] listen_device=veth0 -vlan_couple=110,111 +vlan_ingress=110 +vlan_egress=111 mac_flipping=0 [service_lb] diff --git a/test/tera_test.py b/test/tera_test.py index dc2de8c..bc7b586 100644 --- a/test/tera_test.py +++ b/test/tera_test.py @@ -75,7 +75,8 @@ sid_end=2000 [tera_adapter:0] listen_device=veth0 -vlan_couple=110,111 +vlan_ingress=110 +vlan_egress=111 mac_flipping=0 """ @@ -170,7 +171,8 @@ sid_end=2000 [tera_adapter:0] listen_device=veth1 -vlan_couple=110,111 +vlan_ingress=110 +vlan_egress=111 mac_flipping=1 """ @@ -271,82 +273,98 @@ sid_end=2000 [tera_adapter:0] listen_device=veth0 -vlan_couple=110,111 +vlan_ingress=110 +vlan_egress=111 mac_flipping=1 [tera_adapter:1] listen_device=veth0 -vlan_couple=112,113 +vlan_ingress=112 +vlan_egress=113 mac_flipping=1 [tera_adapter:2] listen_device=veth0 -vlan_couple=114,115 +vlan_ingress=114 +vlan_egress=115 mac_flipping=1 [tera_adapter:3] listen_device=veth0 -vlan_couple=116,117 +vlan_ingress=116 +vlan_egress=117 mac_flipping=1 [tera_adapter:4] listen_device=veth0 -vlan_couple=118,119 +vlan_ingress=118 +vlan_egress=119 mac_flipping=1 [tera_adapter:5] listen_device=veth0 -vlan_couple=120,121 +vlan_ingress=120 +vlan_egress=121 mac_flipping=1 [tera_adapter:6] listen_device=veth0 -vlan_couple=122,123 +vlan_ingress=122 +vlan_egress=123 mac_flipping=1 [tera_adapter:7] listen_device=veth0 -vlan_couple=124,125 +vlan_ingress=124 +vlan_egress=125 mac_flipping=1 [tera_adapter:8] listen_device=veth0 -vlan_couple=126,127 +vlan_ingress=126 +vlan_egress=127 mac_flipping=1 [tera_adapter:9] listen_device=veth0 -vlan_couple=128,129 +vlan_ingress=128 +vlan_egress=129 mac_flipping=1 [tera_adapter:10] listen_device=veth0 -vlan_couple=130,131 +vlan_ingress=130 +vlan_egress=131 mac_flipping=1 [tera_adapter:11] listen_device=veth0 -vlan_couple=132,133 +vlan_ingress=132 +vlan_egress=133 mac_flipping=1 [tera_adapter:12] listen_device=veth0 -vlan_couple=134,135 +vlan_ingress=134 +vlan_egress=135 mac_flipping=1 [tera_adapter:13] listen_device=veth0 -vlan_couple=136,137 +vlan_ingress=136 +vlan_egress=137 mac_flipping=1 [tera_adapter:14] listen_device=veth0 -vlan_couple=138,139 +vlan_ingress=138 +vlan_egress=139 mac_flipping=1 [tera_adapter:15] listen_device=veth0 -vlan_couple=140,141 +vlan_ingress=140 +vlan_egress=141 mac_flipping=1 """ @group("tera_base_test") |
