25 #include <hicn/util/log.h>
30 #define FACEMGR_FACE_TYPE_DEFAULT FACEMGR_FACE_TYPE_OVERLAY_UDP
32 #define FACEMGR_FACE_TYPE_DEFAULT FACEMGR_FACE_TYPE_NATIVE_TCP
35 #define DEFAULT_FACE_TYPE FACE_TYPE_AUTO
36 #define FACEMGR_CFG_DEFAULT_DISCOVERY true
38 #define FACEMGR_CFG_DEFAULT_IPV4 true
39 #define FACEMGR_CFG_DEFAULT_IPV6 false
43 typedef struct facemgr_cfg_s facemgr_cfg_t;
45 facemgr_cfg_t * facemgr_cfg_create();
46 void facemgr_cfg_free(facemgr_cfg_t * cfg);
47 int facemgr_cfg_initialize(facemgr_cfg_t * cfg);
48 int facemgr_cfg_finalize(facemgr_cfg_t * cfg);
49 void facemgr_cfg_dump(facemgr_cfg_t * cfg);
53 typedef struct facemgr_cfg_rule_s facemgr_cfg_rule_t;
55 facemgr_cfg_rule_t * facemgr_cfg_rule_create();
56 void facemgr_cfg_rule_free(facemgr_cfg_rule_t * rule);
57 int facemgr_cfg_rule_initialize(facemgr_cfg_rule_t * rule);
58 int facemgr_cfg_rule_finalize(facemgr_cfg_rule_t * rule);
60 int facemgr_cfg_rule_set_match(facemgr_cfg_rule_t * rule,
61 const char * interface_name, netdevice_type_t interface_type);
63 int facemgr_cfg_rule_set_face_type(facemgr_cfg_rule_t * cfg_rule,
facemgr_face_type_t * face_type);
64 int facemgr_cfg_rule_unset_face_type(facemgr_cfg_rule_t * cfg_rule);
66 int facemgr_cfg_rule_set_discovery(facemgr_cfg_rule_t * cfg_rule,
bool status);
67 int facemgr_cfg_rule_unset_discovery(facemgr_cfg_rule_t * cfg_rule);
69 int facemgr_cfg_rule_set_ignore(facemgr_cfg_rule_t * cfg_rule,
bool status);
70 int facemgr_cfg_rule_unset_ignore(facemgr_cfg_rule_t * cfg_rule);
72 int facemgr_cfg_rule_set_ipv4(facemgr_cfg_rule_t * cfg_rule,
bool status);
73 int facemgr_cfg_rule_unset_ipv4(facemgr_cfg_rule_t * cfg_rule);
75 int facemgr_cfg_rule_set_ipv6(facemgr_cfg_rule_t * cfg_rule,
bool status);
76 int facemgr_cfg_rule_unset_ipv6(facemgr_cfg_rule_t * cfg_rule);
78 int facemgr_cfg_rule_set_overlay(facemgr_cfg_rule_t * rule,
int family,
81 int facemgr_rule_unset_overlay(facemgr_cfg_rule_t * rule,
int family);
85 int facemgr_cfg_unset_face_type(facemgr_cfg_t * cfg);
86 int facemgr_cfg_set_discovery(facemgr_cfg_t * cfg,
bool status);
87 int facemgr_cfg_unset_discovery(facemgr_cfg_t * cfg);
88 int facemgr_cfg_set_ipv4(facemgr_cfg_t * cfg,
bool status);
89 int facemgr_cfg_unset_ipv4(facemgr_cfg_t * cfg);
90 int facemgr_cfg_set_ipv6(facemgr_cfg_t * cfg,
bool status);
91 int facemgr_cfg_unset_ipv6(facemgr_cfg_t * cfg);
93 int facemgr_cfg_set_overlay(facemgr_cfg_t * cfg,
int family,
96 int facemgr_cfg_unset_overlay(facemgr_cfg_t * cfg,
int family);
99 int facemgr_cfg_add_rule(facemgr_cfg_t * cfg, facemgr_cfg_rule_t * rule);
100 int facemgr_cfg_del_rule(facemgr_cfg_t * cfg, facemgr_cfg_rule_t * rule);
101 int facemgr_cfg_get_rule(
const facemgr_cfg_t * cfg,
const char * interface_name,
102 netdevice_type_t interface_type, facemgr_cfg_rule_t ** rule);
114 int facemgr_cfg_get_face_type(
const facemgr_cfg_t * cfg,
115 const netdevice_t * netdevice, netdevice_type_t netdevice_type,
117 int facemgr_cfg_get_discovery(
const facemgr_cfg_t * cfg,
118 const netdevice_t * netdevice, netdevice_type_t netdevice_type,
120 int facemgr_cfg_get_ignore(
const facemgr_cfg_t * cfg,
121 const netdevice_t * netdevice, netdevice_type_t netdevice_type,
123 int facemgr_cfg_get_ipv4(
const facemgr_cfg_t * cfg,
124 const netdevice_t * netdevice, netdevice_type_t netdevice_type,
126 int facemgr_cfg_get_ipv6(
const facemgr_cfg_t * cfg,
127 const netdevice_t * netdevice, netdevice_type_t netdevice_type,
129 int facemgr_cfg_get_overlay_local_addr(
const facemgr_cfg_t * cfg,
130 const netdevice_t * netdevice, netdevice_type_t netdevice_type,
132 int facemgr_cfg_get_overlay_local_port(
const facemgr_cfg_t * cfg,
133 const netdevice_t * netdevice, netdevice_type_t netdevice_type,
134 int family, u16 * port);
135 int facemgr_cfg_get_overlay_remote_addr(
const facemgr_cfg_t * cfg,
136 const netdevice_t * netdevice, netdevice_type_t netdevice_type,
138 int facemgr_cfg_get_overlay_remote_port(
const facemgr_cfg_t * cfg,
139 const netdevice_t * netdevice, netdevice_type_t netdevice_type,
140 int family, u16 * port);
142 int facemgr_cfg_rule_get(
const facemgr_cfg_t * cfg,
const netdevice_t netdevice,
143 netdevice_type_t netdevice_type, facemgr_cfg_rule_t ** rule);
144 int facemgr_cfg_rule_get_face_type(
const facemgr_cfg_rule_t * cfg_rule,
facemgr_face_type_t * face_type);
145 int facemgr_cfg_rule_get_discovery(
const facemgr_cfg_rule_t * cfg_rule,
bool * status);
146 int facemgr_cfg_rule_get_ignore(
const facemgr_cfg_rule_t * cfg_rule,
bool * status);
147 int facemgr_cfg_rule_get_ipv4(
const facemgr_cfg_rule_t * cfg_rule,
bool * status);
148 int facemgr_cfg_rule_get_ipv6(
const facemgr_cfg_rule_t * cfg_rule,
bool * status);
149 int facemgr_cfg_rule_get_overlay_local_addr(
const facemgr_cfg_rule_t * rule,
int family,
151 int facemgr_cfg_rule_get_overlay_local_port(
const facemgr_cfg_rule_t * rule,
int family,
153 int facemgr_cfg_rule_get_overlay_remote_addr(
const facemgr_cfg_rule_t * rule,
int family,
155 int facemgr_cfg_rule_get_overlay_remote_port(
const facemgr_cfg_rule_t * rule,
int family,
158 int facemgr_cfg_add_static_facelet(facemgr_cfg_t * cfg, facelet_t * facelet);
159 int facemgr_cfg_remove_static_facelet(facemgr_cfg_t * cfg, facelet_t * facelet,
160 facelet_t ** removed_facelet);
161 int facemgr_cfg_get_static_facelet_array(
const facemgr_cfg_t * cfg, facelet_t *** array);