typedef enum cnat_trk_flag_t_
{
CNAT_TRK_ACTIVE = (1 << 0),
+ CNAT_TRK_FLAG_NO_NAT = (1 << 1),
} cnat_trk_flag_t;
/**
CNAT_ADDR_N_RESOLUTIONS,
} cnat_addr_resol_type_t;
+typedef enum __attribute__ ((__packed__))
+{
+ CNAT_LB_DEFAULT,
+ CNAT_LB_MAGLEV,
+} cnat_lb_type_t;
+
/**
* Entry used to account for a translation's backend
* waiting for address resolution
* Translation flags
*/
u8 flags;
+
+ /**
+ * Type of load balancing
+ */
+ cnat_lb_type_t lb_type;
+
+ union
+ {
+ u32 *lb_maglev;
+ };
} cnat_translation_t;
extern cnat_translation_t *cnat_translation_pool;
*
* @return the ID of the translation. used to delete and gather stats
*/
-extern u32 cnat_translation_update (cnat_endpoint_t * vip,
+extern u32 cnat_translation_update (cnat_endpoint_t *vip,
ip_protocol_t ip_proto,
- cnat_endpoint_tuple_t *
- backends, u8 flags);
+ cnat_endpoint_tuple_t *backends, u8 flags,
+ cnat_lb_type_t lb_type);
/**
* Delete a translation