diff options
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/net_common.c | 10 | ||||
| -rw-r--r-- | src/common/stream_addr_inet.c | 32 |
2 files changed, 21 insertions, 21 deletions
diff --git a/src/common/net_common.c b/src/common/net_common.c index bcf1f29..0f3342d 100644 --- a/src/common/net_common.c +++ b/src/common/net_common.c @@ -401,8 +401,8 @@ static int mpls_jump_to_layer(const char *raw_data, int raw_layer_type, int exp } set_mpls_addr(&mpls_addr, (unsigned char *)raw_data); - mpls_layer_len = mpls_addr.src_mpls_layer_num * sizeof(int); - if(mpls_addr.src_has_ctrl_word){ + mpls_layer_len = mpls_addr.c2s_layer_num * sizeof(struct mesa_mpls_hdr); + if(mpls_addr.c2s_has_ctrl_word){ mpls_layer_len += sizeof(int); } @@ -499,10 +499,10 @@ static int vlan8021q_jump_to_layer(const char *raw_data, int raw_layer_type, in } set_vlan_addr(&vlan_addr, (const unsigned char *)raw_data); - vlan_layer_len = sizeof(struct mesa_vlan_hdr) * vlan_addr.src_vlan_layer_num; + vlan_layer_len = sizeof(struct mesa_vlan_hdr) * vlan_addr.c2s_layer_num; next_layer_data = raw_data + vlan_layer_len; - vhdr = (struct mesa_vlan_hdr *)&vlan_addr.src_vlan_pkt[vlan_addr.src_vlan_layer_num-1]; - next_layer_type = ntohs(vhdr->type); + //vhdr = (struct mesa_vlan_hdr *)&vlan_addr.c2s_addr_array[vlan_addr.c2s_layer_num-1]; + next_layer_type = ntohs(vlan_addr.c2s_addr_array[vlan_addr.c2s_layer_num-1].TPID); switch(next_layer_type){ case ETH_P_ARP: diff --git a/src/common/stream_addr_inet.c b/src/common/stream_addr_inet.c index ba925f0..e6978c9 100644 --- a/src/common/stream_addr_inet.c +++ b/src/common/stream_addr_inet.c @@ -1339,19 +1339,19 @@ static int __addr_vlan_n2p_fun(const struct layer_addr *paddr, char *buf, int bu char vlan_addr_string[128] = {}; /* ע��: �����зǶԳ�vlan����� */ - int max_layer_num = vlan_addr->src_vlan_layer_num > vlan_addr->dst_vlan_layer_num ? vlan_addr->src_vlan_layer_num:vlan_addr->dst_vlan_layer_num; + int max_layer_num = vlan_addr->c2s_layer_num > vlan_addr->s2c_layer_num ? vlan_addr->c2s_layer_num:vlan_addr->s2c_layer_num; for(i = 0; i < max_layer_num; i++){ - if(vlan_addr->src_vlan_layer_num >= i+1){ - vhdr = (struct mesa_vlan_hdr *)&vlan_addr->src_vlan_pkt[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; snprintf(tmp_buf, 32, "%d", vlan_id); strcat(vlan_addr_string, tmp_buf); }else{ strcat(vlan_addr_string, "N/A"); } - if(vlan_addr->dst_vlan_layer_num >= i+1){ - vhdr = (struct mesa_vlan_hdr *)&vlan_addr->dst_vlan_pkt[i]; + 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; snprintf(tmp_buf, 32, "%d", vlan_id); strcat(vlan_addr_string, tmp_buf); @@ -1470,25 +1470,25 @@ static int __addr_mpls_n2p_fun(const struct layer_addr *paddr, char *buf, int bu int mpls_label; char tmp_buf[32]; /* ע���зǶԳ�mpls����� */ - int max_layer_num = mpls_addr->src_mpls_layer_num > mpls_addr->dest_mpls_layer_num ? mpls_addr->src_mpls_layer_num:mpls_addr->dest_mpls_layer_num; + int max_layer_num = mpls_addr->c2s_layer_num > mpls_addr->s2c_layer_num ? mpls_addr->c2s_layer_num:mpls_addr->s2c_layer_num; char mpls_addr_string[128] = {}; for(i = 0; i < max_layer_num; i++){ - if(mpls_addr->src_mpls_layer_num >= i+1){ - mpls_label = 0; - net_mpls_hdr = (struct mesa_mpls_hdr *)&mpls_addr->src_mpls_pkt[i]; - mpls_label = (net_mpls_hdr->mpls_label_low<<12) | (net_mpls_hdr->mpls_label_mid<<4) | net_mpls_hdr->mpls_label_high; /* network order */ - snprintf(tmp_buf, 32, "%d", mpls_label); + if(mpls_addr->c2s_layer_num >= i+1){ + //mpls_label = 0; + //net_mpls_hdr = (struct mesa_mpls_hdr *)&mpls_addr->src_mpls_pkt[i]; + //mpls_label = (net_mpls_hdr->mpls_label_low<<12) | (net_mpls_hdr->mpls_label_mid<<4) | net_mpls_hdr->mpls_label_high; /* network order */ + snprintf(tmp_buf, 32, "%d", ntohl(mpls_addr->c2s_addr_array[i].label)); strcat(mpls_addr_string, tmp_buf); }else{ strcat(mpls_addr_string, "N/A"); } - if(mpls_addr->dest_mpls_layer_num >= i+1){ - mpls_label = 0; - net_mpls_hdr = (struct mesa_mpls_hdr *)&mpls_addr->dest_mpls_pkt[i]; - mpls_label = (net_mpls_hdr->mpls_label_low<<12) | (net_mpls_hdr->mpls_label_mid<<4) | net_mpls_hdr->mpls_label_high; /* network order */ - snprintf(tmp_buf, 32, "-%d", mpls_label); + if(mpls_addr->s2c_layer_num >= i+1){ + //mpls_label = 0; + //net_mpls_hdr = (struct mesa_mpls_hdr *)&mpls_addr->dest_mpls_pkt[i]; + //mpls_label = (net_mpls_hdr->mpls_label_low<<12) | (net_mpls_hdr->mpls_label_mid<<4) | net_mpls_hdr->mpls_label_high; /* network order */ + snprintf(tmp_buf, 32, "-%d", ntohl(mpls_addr->s2c_addr_array[i].label)); strcat(mpls_addr_string, tmp_buf); }else{ strcat(mpls_addr_string, "-N/A"); |
