aboutsummaryrefslogtreecommitdiffstats
path: root/extras/libmemif/src/socket.c
AgeCommit message (Collapse)AuthorFilesLines
2021-09-27libmemif: refactor connection establishmentJakub Grajciar1-435/+383
per_thread_ namespace fuctionality replaced by memif socket. Interfaces are grouped by memif socket which holds interface database. Each thread can create it's unique memif socket. The path name can be equal across threads so that the app only uses one UNIX socket. In case of listener socket, listener fd can be obtained and set using APIs. This change allows: - No lookup on file descriptor events - improves interrupt handling - Loopback support (connect two interfaces in one app) - usefull for debugging and testing - Improves code readability by providing control channel abstraction for each interface and listener sockets Type: refactor Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> Change-Id: I1b8261042431c0376646ab4c4c831f6e59dd3eed
2021-02-08libmemif: fix insecure uses of strncpyAndrew Yourtchenko1-20/+16
A calling patterm of "strncpy(dst, src, strlen(src))" invites a lot of troubles. However, even using the target size may result in a problem if the string is longer, since then the termination is not done. Use strlcpy(dst, src, sizeof(dst)), which will always null-terminate the string. Change-Id: I8ddaf3dc8380a78af08914e81849279dae7ab24a Type: fix Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com> Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2020-05-18libmemif: cleanup typosPaul Vinciguerra1-1/+1
cleaned up typos in documetation while doing a read through. Type: style Change-Id: Id8abbd8d6297ee10490c12a8e62097224f7ec1e1 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2020-01-27libmemif: memif_control_fd_update always pass context from libmemif_mainJakub Grajciar1-4/+4
Event polling instance is always identified by libmemif main private context. Fixes event polling handled by libmemif. Type: fix Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> Change-Id: I51dcdb279b18f8ce97bad3b2695848e0b25a232d
2019-08-21libmemif: introduce 'memif_per_thread_' namespaceJakub Grajciar1-24/+26
APIs in 'memif_per_thread_' namespace are used to split the global database into separate databases, to improve multi-thread use cases. Using 'memif_per_thread_init' client can create separate libmemif databases (libmemif_main_t). Client will reference these databases using memif_per_thread_handle_t. Each database requires unique socket. Created interface will be stored in the same database as the socket passed in connection arguments. Example code: extras/libmemif/examples/icmp_responder_3-1/main.c Type: feature Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> Change-Id: I261563ecc34761a76e94f20c20015394398ddfd7 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2019-07-02libmemif: version 3.0Jakub Grajciar1-11/+8
Add support for multi-thread connection establishment. - control_fd_update() callback now passes private context associated with updated file descriptor. File descriptor can belong to memif socket, memif connection or timerfd. In case of timerfd the context is NULL. - memif_create_socket() new API. Creates memif socket handle to be passed to memif_create() in memif_conn_args_t. This API allows to pass private context whenever the file descriptor is updated. - memif_delete_socket() new API. Deletes memif socket. Socket must not be in use by any interface. Type: feature Change-Id: I7ca4e4349595d4477195f1c32403d3e3a6eb5361 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2019-03-04libmemif: Connection request APIsJakub Grajciar1-3/+2
Add APIs that allow changing reconnect timer and request connection. First connection request is automatically sent once slave interface is created. Change-Id: Ie3558b7b94a780b046755f7f0ac6c3dcf07633e4 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-12-17Added CMake building system for libmemifmsardara1-3/+1
Added Cpack support for building libmemif DEB/RPM packages Fixed compilation errors in libmemif test and examples Change-Id: I59a237a4ca8eb08840857d5b0e666f3a8d74411d Signed-off-by: msardara <msardara+fdio@cisco.com>
2018-09-27libmemif: external region bugfixJakub Grajciar1-1/+2
Change-Id: I7dbece80dda917ff78f53f8f4074132895aed316 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-08-30libmemif: external region supportJakub Grajciar1-14/+28
region 0: descriptors region 1: buffers (external) Change-Id: Ia728967817b4c78bc00f8eed44606d0c5bc386b0 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-07-11memif: fix max number of ringsDamjan Marion1-1/+1
Change-Id: Ie7621a38a44e7c692e23e58c43d27d8d2aab43e6 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-06-28libmemif: fixing head/tail arithmetics & queue reallocationMilan Lenco1-2/+2
Change-Id: Ibc1f01b1cc99e7be77e892e53b7e1283f2a145cf Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
2018-04-12libmemif: fix clang compilation errors/warningsJakub Grajciar1-4/+4
Change-Id: I09444281a932d367162a10b90c3759db71c03350 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-03-30libmemif: zero-copy-slave mode + header spaceJakub Grajciar1-6/+0
Slave is now able to dequeue buffers from rx queue and enqueue them to tx queue (zero-copy operation). Slave can produce buffers with headroom, which will allow adding encap without copy. Change-Id: Ia189f8de1a68be787545ed46cf78d36403e7e9bf Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-03-28libmemif: add private header size fieldJakub Grajciar1-0/+4
Change-Id: I09567c8ee9c92e91918840f80942a005069d9842 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-03-26libmemif: version 2Jakub Grajciar1-12/+28
Change-Id: Ia2532695aa9199d2a7b684aebef43df0b8235531 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-02-07libmemif: cleanup queue info while memif connectingChun Li1-0/+2
Change-Id: I4265fd0606f87f80f43f7f59ced1c3a73de82776 Signed-off-by: Chun Li <chunl2@cisco.com>
2017-09-15libmemif: Jumbo frames supportJakub Grajciar1-2/+0
Change-Id: I2b316358dcd2de7168a860541bcca35c3dd44649 Signed-off-by: Jakub Grajciar <grajciar.jakub@gmail.com>
2017-09-13Shared memory packet interface (memif) libraryJakub Grajciar1-0/+883
Change-Id: I5097462ae85acd705f19e92517c01094dba7565f Signed-off-by: Jakub Grajciar <grajciar.jakub@gmail.com>