You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

46 lines
1.1 KiB

// routing.h - Centralized routing module for utun
#ifndef ROUTING_H
#define ROUTING_H
#include <stdint.h>
#include <stddef.h>
// Forward declarations
struct ETCP_CONN;
struct UTUN_INSTANCE;
/**
* @brief Initialize routing module for instance
* @param instance UTUN instance
* @return 0 on success, -1 on error
*/
int routing_create(struct UTUN_INSTANCE* instance);
/**
* @brief Destroy routing module for instance
* @param instance UTUN instance
*/
void routing_destroy(struct UTUN_INSTANCE* instance);
/**
* @brief Register ETCP connection with routing
* Called from pn_init() to register connection's normalizer output queue
* @param etcp ETCP connection
*/
void routing_add_conn(struct ETCP_CONN* etcp);
/**
* @brief Unregister ETCP connection from routing
* Called from pn_deinit() to unregister connection's normalizer output queue
* @param etcp ETCP connection
*/
void routing_del_conn(struct ETCP_CONN* etcp);
/**
* @brief Set TUN interface for routing
* Called from utun_instance_init() after tun_init()
* @param instance UTUN instance with configured tun
*/
void routing_set_tun(struct UTUN_INSTANCE* instance);
#endif // ROUTING_H