diff options
| author | luqiuwen <[email protected]> | 2018-12-09 15:01:36 +0600 |
|---|---|---|
| committer | luqiuwen <[email protected]> | 2018-12-09 15:01:36 +0600 |
| commit | e7134e0657eb5a6b20d405ae6f80bb46473bbed3 (patch) | |
| tree | e4323f7b6b62b825189d0f790694ff0e46d8fbac | |
| parent | 84d12d749ff1f594e080ba03244d8fcfb5cc6374 (diff) | |
增加从VXLAN头部获取LINK-ID的功能v4.3.1-20181209
| -rw-r--r-- | tunnat/include/tunnel.h | 6 | ||||
| -rw-r--r-- | tunnat/src/runtime.cc | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/tunnat/include/tunnel.h b/tunnat/include/tunnel.h index 221eb9d..06b4554 100644 --- a/tunnat/include/tunnel.h +++ b/tunnat/include/tunnel.h @@ -41,13 +41,15 @@ struct AddressInfo { struct ipv4_addr_t ipv4_addr; struct ipv6_addr_t ipv6_addr; - }addr; + } addr; uint16_t s_port; uint16_t d_port; uint32_t vpn_id; + uint32_t link_id; }; + /* 隧道格式类型 */ enum tunnel_type { @@ -129,7 +131,6 @@ protected: struct ipv4_hdr ipv4_hdr_; struct udp_hdr udp_hdr_; struct g_vxlan_hdr vxlan_hdr_; - struct ipv4_addr_t ipv4_addr_; public: @@ -144,6 +145,7 @@ public: addr_info.s_port = udp_hdr_.src_port; addr_info.d_port = udp_hdr_.dst_port; addr_info.vpn_id = (vxlan_hdr_.vlan_id_half_low & 0xf) | (vxlan_hdr_.vlan_id_half_high & 0xff) << 4; + addr_info.link_id = vxlan_hdr_.link_id; return 0; } diff --git a/tunnat/src/runtime.cc b/tunnat/src/runtime.cc index f2ce931..ca1f5bf 100644 --- a/tunnat/src/runtime.cc +++ b/tunnat/src/runtime.cc @@ -134,6 +134,7 @@ static int __phy_to_virt_pkt_modify(TunnatInstance * instance, TunnatThreadInsta ctrlzone->g_device_in_addr = outer_tunnel_addrinfo.addr.ipv4_addr.src_in_addr.s_addr; ctrlzone->l4_src_port = outer_tunnel_addrinfo.s_port; ctrlzone->g_device_vpn_id = outer_tunnel_addrinfo.vpn_id; + ctrlzone->g_device_linkpair = outer_tunnel_addrinfo.link_id; } ctrlzone->__encap_type = outer_tunnel.ThisTunType(); |
