summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQiuwen Lu <[email protected]>2020-04-28 17:15:20 +0800
committerQiuwen Lu <[email protected]>2020-05-09 13:57:09 +0800
commitf936069fd850d158237173846e8c4360cc853eb6 (patch)
tree22e8f2a3816a33c4bbab198df93e8d9cb1ff029f
parentf5433253e98e56b52189dd94e219124fdeddbc7a (diff)
增加在控制域中填写C->I或I->C方向的实现。v4.3.19-20200509
-rw-r--r--tunnat/include/tunnel.h9
-rw-r--r--tunnat/src/runtime.cc1
2 files changed, 10 insertions, 0 deletions
diff --git a/tunnat/include/tunnel.h b/tunnat/include/tunnel.h
index 6801cf7..69fa17f 100644
--- a/tunnat/include/tunnel.h
+++ b/tunnat/include/tunnel.h
@@ -22,9 +22,17 @@ enum AddressInfoType
ADDRESS_INFO_TYPE_IPV6
};
+enum AddressInfoDir
+{
+ ADDRESS_INFO_C_TO_I,
+ ADDRESS_INFO_I_TO_C
+};
+
struct AddressInfo
{
enum AddressInfoType type;
+ enum AddressInfoDir dir;
+
uint8_t src_mac_addr[6];
uint8_t dst_mac_addr[6];
@@ -149,6 +157,7 @@ public:
{
/* g-device always use IPv4 protocol */
addr_info.type = ADDRESS_INFO_TYPE_IPV4;
+ addr_info.dir = (enum AddressInfoDir)vxlan_hdr_.dir;
/* Tuple-4 */
addr_info.src_addr_v4.s_addr = ipv4_hdr_.src_addr;
diff --git a/tunnat/src/runtime.cc b/tunnat/src/runtime.cc
index 0ee38fa..02b8775 100644
--- a/tunnat/src/runtime.cc
+++ b/tunnat/src/runtime.cc
@@ -245,6 +245,7 @@ static void __phy_to_virt_pkt_fill_addressinfo(TunnatInstance * instance,
ctrlzone->l_device_in_addr = addrinfo.dst_addr_v4.s_addr;
ctrlzone->g_device_vpn_id = addrinfo.tun_vpn_id;
ctrlzone->g_device_linkpair = addrinfo.tun_link_id;
+ ctrlzone->route_dir = addrinfo.dir;
}
}