diff options
| author | lijia <[email protected]> | 2021-11-07 22:00:48 +0800 |
|---|---|---|
| committer | lijia <[email protected]> | 2021-11-07 22:00:48 +0800 |
| commit | 5af29da3f810240e584777dced6347c47eb1ead6 (patch) | |
| tree | 8fc8fdbbaa2b7e814a5222b89cb19dc5570c4686 | |
| parent | bec6e8ecb579027c11aac9bfb2f70378a79a6a6e (diff) | |
TSG-8371, 修复不支持多于2层vlan的BUG.v4.2.66
| -rw-r--r-- | include/public/stream_inc/stream_base.h | 2 | ||||
| -rw-r--r-- | src/common/stream_addr_inet.c | 12 |
2 files changed, 7 insertions, 7 deletions
diff --git a/include/public/stream_inc/stream_base.h b/include/public/stream_inc/stream_base.h index afca3e7..f7d8dea 100644 --- a/include/public/stream_inc/stream_base.h +++ b/include/public/stream_inc/stream_base.h @@ -192,7 +192,7 @@ struct layer_addr_gre #define VLAN_ID_MASK (0x0FFF) #define VLAN_TAG_LEN (4) -#define MAX_VLAN_ADDR_LAYER (2) +#define MAX_VLAN_ADDR_LAYER (8) struct single_layer_vlan_addr{ /* refer to https://en.wikipedia.org/wiki/IEEE_802.1Q */ diff --git a/src/common/stream_addr_inet.c b/src/common/stream_addr_inet.c index 404dcb8..606e3ff 100644 --- a/src/common/stream_addr_inet.c +++ b/src/common/stream_addr_inet.c @@ -1346,7 +1346,7 @@ static int __addr_pure_udp_n2p_fun(const struct layer_addr *paddr, char *buf, in static int __addr_vlan_n2p_fun(const struct layer_addr *paddr, char *buf, int buf_len) { const struct layer_addr_vlan *vlan_addr = paddr->vlan; - const struct mesa_vlan_hdr *vhdr; + //const struct mesa_vlan_hdr *vhdr; int i; unsigned short vlan_id; char tmp_buf[32] = {}; @@ -1357,16 +1357,16 @@ static int __addr_vlan_n2p_fun(const struct layer_addr *paddr, char *buf, int bu for(i = 0; i < max_layer_num; i++){ if(vlan_addr->c2s_layer_num >= i+1){ - vhdr = (struct mesa_vlan_hdr *)&vlan_addr->c2s_addr_array[i]; - vlan_id = ntohs(vhdr->pri_cfi_id) & VLAN_ID_MASK; + //vhdr = (struct mesa_vlan_hdr *)&vlan_addr->c2s_addr_array[i]; + vlan_id = ntohs(vlan_addr->c2s_addr_array[i].VID); snprintf(tmp_buf, 32, "%d", vlan_id); strcat(vlan_addr_string, tmp_buf); }else{ - strcat(vlan_addr_string, "N/A"); + strcat(vlan_addr_string, "N/A-"); } if(vlan_addr->s2c_layer_num >= i+1){ - vhdr = (struct mesa_vlan_hdr *)&vlan_addr->s2c_addr_array[i]; - vlan_id = ntohs(vhdr->pri_cfi_id) & VLAN_ID_MASK; + //vhdr = (struct mesa_vlan_hdr *)&vlan_addr->s2c_addr_array[i]; + vlan_id = ntohs(vlan_addr->s2c_addr_array[i].VID); snprintf(tmp_buf, 32, "%d", vlan_id); strcat(vlan_addr_string, tmp_buf); }else{ |
