5 #ifndef __OF1X_TIMERSH__
6 #define __OF1X_TIMERSH__
25 #define OF1X_TIMER_SLOT_MS 1000 //1s
28 #ifdef OF1X_TIMER_DYNAMIC_ALLOCATION_SLOTS
29 #error "Dynamic timers are not yet supported."
30 #define OF1X_TIMER_STATIC_ALLOCATION_SLOTS 0
32 #define OF1X_TIMER_STATIC_ALLOCATION_SLOTS 1
35 #define OF1X_TIMER_GROUPS_MAX 65536 //timeouts are given in a uint16_t=> 2^16
46 }of1x_timer_timeout_type_t;
55 of1x_timer_timeout_type_t type;
59 uint32_t hard_timeout;
60 uint32_t idle_timeout;
66 uint64_t last_packet_count;
74 unsigned int num_of_timers;
85 #if ! OF1X_TIMER_STATIC_ALLOCATION_SLOTS
99 void __of1x_process_pipeline_tables_timeout_expirations(
struct of1x_pipeline *
const pipeline);
112 timer_info->last_packet_count=0;
rofl_result_t __of1x_destroy_timer_entries(struct of1x_flow_entry *entry)
of1x_destroy_timer_entry When a flow entry is removed from the table this function will be called in ...
void __of1x_timer_group_static_destroy(struct of1x_flow_table *table)
of1x_timer_group_static_destroy Destroys the timers table initializes the values for the entry lists ...
OpenFlow v1.0, 1.2 and 1.3.2 flow entry structure.
OpenFlow v1.0, 1.2 and 1.3.2 flow table abstraction.
void __of1x_fill_new_timer_entry_info(struct of1x_flow_entry *entry, uint32_t hard_timeout, uint32_t idle_timeout)
of1x_fill_new_timer_entry_info initialize the values for a new the timer entry
void __of1x_dump_timers_structure(of1x_timer_group_t *timer_group)
of1x_dump_timers_structure this function is ment to show the timer groups existing and the entries re...
OpenFlow v1.0, 1.2 and 1.3.2 pipeline abstraction data structure.
rofl_result_t __of1x_timer_group_static_init(struct of1x_flow_table *table)
of1x_timer_group_static_init initializes the timeout values initializes the values for the entry list...
uint64_t __of1x_get_expiration_time_slotted(uint32_t timeout, struct timeval *now)
of1x_get_expiration_time_slotted
uint64_t __of1x_get_time_ms(struct timeval *time)
transforms the timeval to a single uint64_t unit time in miliseconds