aboutsummaryrefslogtreecommitdiffstats
path: root/extras/libmemif/examples
AgeCommit message (Collapse)AuthorFilesLines
2024-01-12libmemif: fix segfault and buffer overflow in examplesTianyu Li3-4/+6
- Fix buffer overflow caused by strncpy(dst, src, strlen(src)), use sized buffer to ensure overflow safe. - Fix test_app getopt usage When use example/icmp_responder in slave mode - Fix segfault when buffer size is not specified - Fix wrong packet send out. Type: fix Signed-off-by: Tianyu Li <tianyu.li@arm.com> Change-Id: I5ed47fd8e630420d7ae0203a2605d2b9abd33d2a
2023-07-31libmemif: add support for buffer sizeMohsin Kazmi1-2/+11
Type: improvement buffer size can be configurable: ./test_app -b 9216 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com> Change-Id: Id77f6baac27d45dec3d5b7ea8a9a53acf2a302fc
2023-05-30libmemif: add testing applicationMohsin Kazmi3-1/+317
Type: test This application creates two memif interfaces which connect to an external application i.e. VPP. Usage: 1) Start VPP with following config. create interface memif id 0 master create interface memif id 1 master set int state memif0/0 up set int state memif0/1 up create packet-generator interface pg0 set int state pg0 up create packet-generator interface pg1 set int state pg1 up set int l2 xconn pg0 memif0/0 set int l2 xconn memif0/0 pg0 set int l2 xconn pg1 memif0/1 set int l2 xconn memif0/1 pg1 packet-generator new { \ name memif \ limit -1 \ node ethernet-input \ size 64-64 \ interface pg0 \ worker 0 \ data { \ IP4: 42:01:0a:00:00:0a -> 02:fe:4b:6e:4d:c1 \ UDP: 172.16.2.2 -> 172.16.0.2 \ UDP: 1234 -> 1234 \ length 30 checksum 0 incrementing 1 \ } \ } 2) Compile and Run the test_app in another terminal. mkdir -p extras/libmemif/build cd extras/libmemif/build cmake .. make sudo ./examples/test_app 3) Run in VPP cli vpp# packet enable 4) Run monitor to see the throughput and pps vpp# monitor interface memif0/0 Or vpp# monitor interface memif0/1 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com> Change-Id: I4b9062fca8ad3020225adb7b1b09e5d66b1a7d48
2022-08-29libmemif: add support for custom buffer-size and headroom in icmp example appMohsin Kazmi3-11/+27
Type: improvement Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com> Change-Id: I2bdaee7938a3747e3217d6901ec3c66f1ee3da61
2022-07-25libmemif: fix chain buffer supportMohsin Kazmi3-66/+36
Type: fix This patch fixes chain buffer support as transmit side missing to set the flag to the descriptor in case of chain buffers. Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com> Change-Id: I73ff11be69a388f14fea39a19272d8eb76148fba
2022-03-28libmemif: refactor examplesJakub Grajciar12-281/+1799
- icmp_responder: responds to ICMPv4 and ARP requests - loopback: connects two interfaces and sends a verification packet from master memif to slave memif where it is looped back - loopback (reverse path): reverses direction of packet in loopback application (slave memif to master memif) Type: refactor Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> Change-Id: Ie90aaa3367269408efb6c5d538ad5aa827432238 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-10-13libmemif: docs md->rstNathan Skrzypczak4-225/+290
Type: improvement Change-Id: Ibebd2d47a4268189f11601d004073e4858548f25 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-09-27libmemif: remove old examplesJakub Grajciar9-6116/+4
Type: refactor Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> Change-Id: I2331f6fb43ca533afb32f7d448adda27b19689ac
2020-12-04libmemif: clean up typosPaul Vinciguerra6-29/+29
Type: style Change-Id: I0d25d922312dfd60a665916cf47c3d2faa29ea49 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2020-09-09docs: Fix create memif cliNathan Skrzypczak1-1/+1
Type: docs Change-Id: I91a954abf77335e1ddcbd1468633d9d7980bbac2 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2020-05-18libmemif: cleanup typosPaul Vinciguerra2-2/+2
cleaned up typos in documetation while doing a read through. Type: style Change-Id: Id8abbd8d6297ee10490c12a8e62097224f7ec1e1 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2020-05-08build: various improvementsDamjan Marion1-1/+1
- add option to install only host tools - add option to specify lib and runtime dir Type: improvement Change-Id: I6356b52df459120fc9b0127948bae7679fb10e52 Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-08-21libmemif: introduce 'memif_per_thread_' namespaceJakub Grajciar2-1/+550
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 Grajciar4-15/+15
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-07-01libmemif: icmp-responder example buffer management fixJakub Grajciar1-5/+8
Type: fix Change-Id: Ieeb763f282ee929a121585747119f458c00056ae Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2019-06-07build: add -Wall and -fno-common, fix reported issuesBenoît Ganne6-39/+10
Type: refactor Change-Id: I8489ccd54411c2aa9355439c5641dc31012c64a2 Signed-off-by: Benoît Ganne <bganne@cisco.com> Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-12-17Added CMake building system for libmemifmsardara2-1/+37
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-07libmemif: slave connecting bugfixJakub Grajciar1-1/+4
in case first connecting slave fails continue connecting others add disconnect string to memif details Change-Id: I9d83db4724de1cab60786dca566e004016cf1e59 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-08-30libmemif: external region supportJakub Grajciar4-12/+1087
region 0: descriptors region 1: buffers (external) Change-Id: Ia728967817b4c78bc00f8eed44606d0c5bc386b0 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-03-30libmemif: zero-copy-slave mode + header spaceJakub Grajciar6-27/+1507
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-28Build libmemif as part of verify jobDamjan Marion1-0/+4
Change-Id: I7e808b5bcbb74343a4ed6782f115ed07e9bfe3a6 Signed-off-by: Damjan Marion <damarion@cisco.com> Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-03-26libmemif: version 2Jakub Grajciar3-96/+78
Change-Id: Ia2532695aa9199d2a7b684aebef43df0b8235531 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2017-11-16libmemif: unmask head/tail pointers fix, additional ring info in ↵Jakub Grajciar1-1/+9
memif_queue_details_t Change-Id: I1dbf91c2a1575d5a82af70bfccdd990310323a8c Signed-off-by: Jakub Grajciar <Jakub.Grajciar@pantheon.tech>
2017-11-05libmemif: example app can generate ICMP, dev perf tests (using icmpr-epoll)Jakub Grajciar4-46/+679
Change-Id: Ib72ede51559754f606c0a1d57f4fb624d032caa6 Signed-off-by: Jakub Grajciar <Jakub.Grajciar@pantheon.tech>
2017-09-28General documentation updatesChris Luke3-19/+22
- We now have several developer-focused docs, so create an index page for them. - Rework several docs to fit into the index structure. - Experiment with code highlighting; tweak the CSS slightly to make it slightly nicer to look at. Change-Id: I4185a18f84fa0764745ca7a3148276064a3155c6 Signed-off-by: Chris Luke <chrisy@flirble.org>
2017-09-15libmemif: Jumbo frames supportJakub Grajciar4-7/+7
Change-Id: I2b316358dcd2de7168a860541bcca35c3dd44649 Signed-off-by: Jakub Grajciar <grajciar.jakub@gmail.com>
2017-09-13Shared memory packet interface (memif) libraryJakub Grajciar7-0/+2622
Change-Id: I5097462ae85acd705f19e92517c01094dba7565f Signed-off-by: Jakub Grajciar <grajciar.jakub@gmail.com>