summaryrefslogtreecommitdiff
path: root/access/include/ip_mgr.h
blob: 9b8c2a7a27c9f9b47e0fcec44b1dfb78f6252ab9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#define IP_MGR_MAC_LEN 18 
#define IP_MGR_IP_LEN 16 
#define IP_MGR_PORT_LEN 6

struct ip_mgr_cand_ip_detail
{
    uint32_t ip;
    int reference;
    struct ip_mgr_vxlan_info *vxlan_info;
    uint32_t mrl_ip;
};


struct ip_mgr_vxlan_info
{
    int vxlan_link_id;
    int vxlan_encap_type;
    int vxlan_link_dir;
    int vxlan_vpn_id;
    char vxlan_outer_local_port[IP_MGR_PORT_LEN];
    char vxlan_outer_gdev_port[IP_MGR_PORT_LEN];
    char vxlan_outer_local_ip[IP_MGR_IP_LEN];
    char vxlan_outer_gdev_ip[IP_MGR_IP_LEN];//串行设备IP
    char vxlan_outer_local_mac[IP_MGR_MAC_LEN];//接收到的数据包的本地设备MAC地址
    char vxlan_outer_gdev_mac[IP_MGR_MAC_LEN];//接收到的数据包的串行设备MAC地址
    char vxlan_inner_smac[IP_MGR_MAC_LEN];
    char vxlan_inner_dmac[IP_MGR_MAC_LEN];
};  

struct ip_mgr_handle;
struct ip_mgr_handle *ip_mgr_init(const char *profile, MESA_htable_handle cand_ip_detail_htable, struct field_stat_handle *fs_handle, 
                Maat_feather_t Maat_feather_cand, Maat_feather_t Maat_feather_policy, void *logger);
void ip_mgr_destroy(struct ip_mgr_handle *handle);
int ip_mgr_candidata_ip_get(struct ip_mgr_handle *handle, const char *user_name, uint32_t *selected_ip);