mirror of
https://github.com/Hizenberg469/Event-Loop-in-C.git
synced 2026-04-19 16:52:24 +03:00
62 lines
1.3 KiB
C
62 lines
1.3 KiB
C
#ifndef __RT__
|
|
#define __RT__
|
|
|
|
/*Opaque Data structures*/
|
|
typedef struct rt_table_ rt_table_t;
|
|
typedef struct rt_table_entry_ rt_table_entry_t;
|
|
typedef struct Timer_ Timer_t;
|
|
|
|
#define RT_ENTRY_EXP_TIMER 30 // 30 sec
|
|
|
|
|
|
#define ROUTE_CREATE 1
|
|
#define ROUTE_UPDATE 2
|
|
#define ROUTE_DELETE 3
|
|
|
|
struct rt_table_entry_ {
|
|
|
|
char dest[16];
|
|
char mask;
|
|
char gw[16];
|
|
char oif[32];
|
|
time_t last_updated_time;
|
|
Timer_t* exp_timer;
|
|
struct rt_table_entry_* next;
|
|
struct rt_table_entry_* prev;
|
|
int exp_timer_msec;
|
|
rt_table_t* rt_table; /* back ptr to owning rt table*/
|
|
};
|
|
|
|
struct rt_table_ {
|
|
|
|
char rt_table_name[32];
|
|
struct rt_table_entry_* head;
|
|
uint32_t count;
|
|
};
|
|
|
|
rt_table_t*
|
|
rt_create_new_rt_table(char* name);
|
|
|
|
int /*0 on success, -1 on failure*/
|
|
rt_insert_new_entry(rt_table_t* rt,
|
|
char* dest, char mask,
|
|
char* gw, char* oif,
|
|
int exp_timer_in_millisec);
|
|
|
|
int /*0 on success, -1 on failure*/
|
|
rt_delete_rt_entry(rt_table_t* rt,
|
|
char* dest, char mask);
|
|
|
|
int /*0 on success, -1 on failure*/
|
|
rt_update_rt_entry(rt_table_t* rt,
|
|
char* dest, char mask,
|
|
char* new_gw, char* new_oif);
|
|
|
|
void
|
|
rt_display_rt_table(rt_table_t* rt);
|
|
|
|
rt_table_entry_t*
|
|
rt_look_up_rt_table_entry(rt_table_t* rt,
|
|
char* dest, char mask);
|
|
|
|
#endif /* __RT__ */ |