FD.io VPP
v20.05.1-6-gf53edbc3b
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | segment_manager_main_init_args_ |
Macros | |
#define | SEGMENT_MANAGER_INVALID_APP_INDEX ((u32) ~0) |
Typedefs | |
typedef struct _segment_manager_props | segment_manager_props_t |
typedef struct _segment_manager | segment_manager_t |
typedef struct segment_manager_main_init_args_ | segment_manager_main_init_args_t |
#define SEGMENT_MANAGER_INVALID_APP_INDEX ((u32) ~0) |
Definition at line 79 of file segment_manager.h.
typedef struct segment_manager_main_init_args_ segment_manager_main_init_args_t |
typedef struct _segment_manager_props segment_manager_props_t |
typedef struct _segment_manager segment_manager_t |
int segment_manager_add_first_segment | ( | segment_manager_t * | sm, |
u32 | segment_size | ||
) |
int segment_manager_add_segment | ( | segment_manager_t * | sm, |
uword | 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 92 of file segment_manager.c.
segment_manager_t* segment_manager_alloc | ( | void | ) |
Definition at line 319 of file segment_manager.c.
svm_msg_q_t* segment_manager_alloc_queue | ( | fifo_segment_t * | segment, |
segment_manager_props_t * | props | ||
) |
Allocates shm queue in the first segment.
Must be called with lock held
Definition at line 805 of file segment_manager.c.
int segment_manager_alloc_session_fifos | ( | segment_manager_t * | sm, |
u32 | thread_index, | ||
svm_fifo_t ** | rx_fifo, | ||
svm_fifo_t ** | tx_fifo | ||
) |
Definition at line 610 of file segment_manager.c.
void segment_manager_app_detach | ( | segment_manager_t * | sm | ) |
u8 segment_manager_app_detached | ( | segment_manager_t * | sm | ) |
void segment_manager_attach_fifo | ( | segment_manager_t * | sm, |
svm_fifo_t * | f, | ||
session_t * | s | ||
) |
Definition at line 769 of file segment_manager.c.
void segment_manager_dealloc_fifos | ( | svm_fifo_t * | rx_fifo, |
svm_fifo_t * | tx_fifo | ||
) |
Definition at line 714 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 849 of file segment_manager.c.
void segment_manager_del_segment | ( | segment_manager_t * | sm, |
fifo_segment_t * | fs | ||
) |
Remove segment without lock.
Definition at line 189 of file segment_manager.c.
void segment_manager_del_sessions | ( | segment_manager_t * | sm | ) |
Cleanup segment manager sessions.
Initiates disconnects for all sessions 'owned' by a segment manager by leveraging the backpointers that fifos keep.
sm | segment manager whose sessions are to be disconnected |
Cleanup segment manager sessions.
Definition at line 523 of file segment_manager.c.
void segment_manager_detach_fifo | ( | segment_manager_t * | sm, |
svm_fifo_t * | f | ||
) |
Definition at line 759 of file segment_manager.c.
svm_msg_q_t* segment_manager_event_queue | ( | segment_manager_t * | sm | ) |
void segment_manager_format_sessions | ( | segment_manager_t * | sm, |
int | verbose | ||
) |
Definition at line 962 of file segment_manager.c.
void segment_manager_free | ( | segment_manager_t * | sm | ) |
Cleanup segment manager.
sm | segment manager to be freed |
Definition at line 432 of file segment_manager.c.
segment_manager_t* segment_manager_get | ( | u32 | index | ) |
segment_manager_t* segment_manager_get_if_valid | ( | u32 | index | ) |
fifo_segment_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 252 of file segment_manager.c.
fifo_segment_t* segment_manager_get_segment_w_handle | ( | u64 | sh | ) |
Definition at line 273 of file segment_manager.c.
fifo_segment_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 294 of file segment_manager.c.
u8 segment_manager_has_fifos | ( | segment_manager_t * | sm | ) |
Definition at line 494 of file segment_manager.c.
u32 segment_manager_index | ( | segment_manager_t * | sm | ) |
int segment_manager_init | ( | segment_manager_t * | sm | ) |
Initializes segment manager based on options provided.
Returns error if ssvm segment(s) allocation fails.
Definition at line 334 of file segment_manager.c.
void segment_manager_init_free | ( | segment_manager_t * | sm | ) |
Initiate segment manager cleanup.
sm | segment manager to be freed |
Definition at line 461 of file segment_manager.c.
void segment_manager_main_init | ( | segment_manager_main_init_args_t * | a | ) |
Definition at line 870 of file segment_manager.c.
segment_manager_props_t* segment_manager_props_init | ( | segment_manager_props_t * | sm | ) |
Definition at line 54 of file segment_manager.c.
u64 segment_manager_segment_handle | ( | segment_manager_t * | sm, |
fifo_segment_t * | segment | ||
) |
Definition at line 258 of file segment_manager.c.
void segment_manager_segment_reader_unlock | ( | segment_manager_t * | sm | ) |
Definition at line 307 of file segment_manager.c.
void segment_manager_segment_writer_unlock | ( | segment_manager_t * | sm | ) |
void segment_manager_set_watermarks | ( | segment_manager_t * | sm, |
u8 | high_watermark, | ||
u8 | low_watermark | ||
) |
int segment_manager_try_alloc_fifos | ( | fifo_segment_t * | fs, |
u32 | thread_index, | ||
u32 | rx_fifo_size, | ||
u32 | tx_fifo_size, | ||
svm_fifo_t ** | rx_fifo, | ||
svm_fifo_t ** | tx_fifo | ||
) |
Definition at line 571 of file segment_manager.c.