FD.io VPP
v18.10-34-gcce845e
Vector Packet Processing
|
Go to the source code of this file.
Variables | |
segment_manager_main_t | segment_manager_main |
static u32 | segment_name_counter = 0 |
Counter used to build segment names. More... | |
static u32 | default_fifo_size = 1 << 12 |
Default fifo and segment size. More... | |
static u32 | default_segment_size = 1 << 20 |
static u32 | default_app_evt_queue_size = 128 |
static vlib_cli_command_t | segment_manager_show_command |
(constructor) VLIB_CLI_COMMAND (segment_manager_show_command) More... | |
int segment_manager_add_segment | ( | segment_manager_t * | sm, |
u32 | segment_size | ||
) |
Adds segment to segment manager's pool.
If needed a writer's lock is acquired before allocating a new segment to avoid affecting any of the segments pool readers.
Definition at line 154 of file segment_manager.c.
svm_msg_q_t* segment_manager_alloc_queue | ( | svm_fifo_segment_private_t * | segment, |
segment_manager_properties_t * | props | ||
) |
Allocates shm queue in the first segment.
Must be called with lock held
Definition at line 625 of file segment_manager.c.
int segment_manager_alloc_session_fifos | ( | segment_manager_t * | sm, |
svm_fifo_t ** | rx_fifo, | ||
svm_fifo_t ** | tx_fifo, | ||
u32 * | fifo_segment_index | ||
) |
Definition at line 478 of file segment_manager.c.
void segment_manager_app_detach | ( | segment_manager_t * | sm | ) |
|
static |
void segment_manager_dealloc_fifos | ( | u32 | segment_index, |
svm_fifo_t * | rx_fifo, | ||
svm_fifo_t * | tx_fifo | ||
) |
Definition at line 560 of file segment_manager.c.
void segment_manager_dealloc_queue | ( | segment_manager_t * | sm, |
svm_queue_t * | q | ||
) |
Frees shm queue allocated in the first segment.
Definition at line 662 of file segment_manager.c.
void segment_manager_del | ( | segment_manager_t * | sm | ) |
Removes segment manager.
Since the fifos allocated in the segment keep backpointers to the sessions prior to removing the segment, we call session disconnect. This subsequently propagates into transport.
Definition at line 398 of file segment_manager.c.
void segment_manager_del_segment | ( | segment_manager_t * | sm, |
svm_fifo_segment_private_t * | fs | ||
) |
Remove segment without lock.
Definition at line 74 of file segment_manager.c.
void segment_manager_del_sessions | ( | segment_manager_t * | sm | ) |
Initiate disconnects for all sessions 'owned' by a segment manager.
Definition at line 349 of file segment_manager.c.
Definition at line 603 of file segment_manager.c.
svm_fifo_segment_private_t* segment_manager_get_segment | ( | segment_manager_t * | sm, |
u32 | segment_index | ||
) |
Reads a segment from the segment manager's pool without lock.
Definition at line 115 of file segment_manager.c.
svm_fifo_segment_private_t* segment_manager_get_segment_w_lock | ( | segment_manager_t * | sm, |
u32 | segment_index | ||
) |
Reads a segment from the segment manager's pool and acquires reader lock.
Caller must drop the reader's lock by calling segment_manager_segment_reader_unlock once it finishes working with the segment.
Definition at line 128 of file segment_manager.c.
u8 segment_manager_has_fifos | ( | segment_manager_t * | sm | ) |
Definition at line 320 of file segment_manager.c.
int segment_manager_init | ( | segment_manager_t * | sm, |
u32 | first_seg_size, | ||
u32 | prealloc_fifo_pairs | ||
) |
Initializes segment manager based on options provided.
Returns error if ssvm segment(s) allocation fails.
Definition at line 251 of file segment_manager.c.
void segment_manager_init_del | ( | segment_manager_t * | sm | ) |
Definition at line 427 of file segment_manager.c.
|
inlinestatic |
Removes segment after acquiring writer lock.
Definition at line 93 of file segment_manager.c.
void segment_manager_main_init | ( | segment_manager_main_init_args_t * | a | ) |
Definition at line 683 of file segment_manager.c.
segment_manager_t* segment_manager_new | ( | ) |
Definition at line 236 of file segment_manager.c.
segment_manager_properties_t* segment_manager_properties_get | ( | segment_manager_t * | sm | ) |
Definition at line 35 of file segment_manager.c.
segment_manager_properties_t* segment_manager_properties_init | ( | segment_manager_properties_t * | props | ) |
|
inlinestatic |
void segment_manager_segment_reader_unlock | ( | segment_manager_t * | sm | ) |
Definition at line 135 of file segment_manager.c.
void segment_manager_segment_writer_unlock | ( | segment_manager_t * | sm | ) |
Definition at line 142 of file segment_manager.c.
|
static |
int segment_manager_try_alloc_fifos | ( | svm_fifo_segment_private_t * | fifo_segment, |
u32 | rx_fifo_size, | ||
u32 | tx_fifo_size, | ||
svm_fifo_t ** | rx_fifo, | ||
svm_fifo_t ** | tx_fifo | ||
) |
Definition at line 440 of file segment_manager.c.
|
static |
Definition at line 32 of file segment_manager.c.
|
static |
|
static |
Definition at line 31 of file segment_manager.c.
segment_manager_main_t segment_manager_main |
Definition at line 20 of file segment_manager.c.
|
static |
(constructor) VLIB_CLI_COMMAND (segment_manager_show_command)
Definition at line 758 of file segment_manager.c.
|
static |
Counter used to build segment names.
Definition at line 25 of file segment_manager.c.