diff options
author | 2019-04-30 17:40:53 +0530 | |
---|---|---|
committer | 2019-05-20 18:14:40 +0530 | |
commit | a826fe833d3f2a8fe2673fa05811fe1a22baf045 (patch) | |
tree | da11a17c46ca9b8a002a52a290628574fa3f5eda /stacks/lwip_stack/doc/README.md | |
parent | 3e6bf7b64eea418c59959c18750261b815b2892c (diff) |
Feature: 19.04 part 1
Change-Id: Ibba924b8deca1f246b9dcb12d89d085b6fd33046
Signed-off-by: charan makkina <charan795m@gmail.com>
Diffstat (limited to 'stacks/lwip_stack/doc/README.md')
-rw-r--r-- | stacks/lwip_stack/doc/README.md | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/stacks/lwip_stack/doc/README.md b/stacks/lwip_stack/doc/README.md deleted file mode 100644 index a76b18a..0000000 --- a/stacks/lwip_stack/doc/README.md +++ /dev/null @@ -1,125 +0,0 @@ -# 1. What is lwIP -lwIP is a light-weight implementation of the TCP/IP protocol suite. -lwIP is freely available (under a BSD-style license) in C source -code format and can be downloaded from the development homepage. -The focus of the lwIP TCP/IP implementation is to reduce the RAM -usage while still having a full scale TCP. - -# 2. How to use lwIP - -## How to integrate lwIP into DMM -The file CMakeList.txt defined the compiling process, including downloading -the lwip 2.7.0 code and pushing the helper files into it, or modify -lwip files. - -Currently lwip will not be build as separate lib, instead it'll be part -of the excutable namely "nStackMain". -lwip Stack will run in pipeline mode. Application will run in one process -and lwip will run as "nStackMain" process. Below picture depicts -a birds eye view of lwip in DMM pipeline mode. -![Lwip in DMM framework](dmm_lwip.png) - -## Compile -```sh - #cd dmm/build && cmake .. - #make - #cd ../stacks/lwip_stack/build && cmake .. - #make -``` - -## Test -- Steps 1: update some environment variables -```sh - #export LD_LIBRARY_PATH=${dmm}/stacks/lwip_stack/release/lib64/ - #export LD_PRELOAD=${dmm}/release/lib64/libnStackAPI.so - #export NSTACK_MOD_CFG_FILE=${dmm}/stacks/lwip_stack/configure/module_config.json - #export NSTACK_MOD_CFG_RD=${dmm}/stacks/lwip_stack/configure/rd_config.json - #export NSTACK_LOG_ON=DBG (optional enable debug) -``` -- Steps 2: Modify rd_config.json(located at dmm/stacks/lwip_stack/configure/) -```sh - #vim rd_config.json - Eg. set "subnet": "192.168.21.1/24" -``` -Note: - Means dmm chose lwip_stack if subnet matches 192.168.21.* - -- Steps 3: Run nStackMain(lwip stack)) -```sh - #cp ${dmm}/stacks/lwip_stack/release/configure/ip_data.json ${dmm}/stacks/lwip_stack/release/bin/ - #cp ${dmm}/stacks/lwip_stack/release/configure/network_data_tonStack.json ${dmm}/stacks/lwip_stack/release/bin/ - -``` -Modify ip_data.json -``` -Change ref_nic => to interface name which you want to use -Change ip_cidr => ip address you want to use. -``` -Modify network network_data_tonStack.json -``` -Change ref_nic => to interface name which you want to use -Change subnet => Subnet (ip_cidr belongs to this subnet) -Change gateway, range-start, range-end, dst, gw accordingly. This information will be used by DMM to configure network. -``` -Run the process: -``` - #cd ${dmm}/stacks/lwip_stack/release - #./start_nstack.sh -``` - -If you want to run it with vhost-user, you can run the start_nstack.sh with parameters as follow. -``` - #./start_nstack.sh --vdev virtio_user,mac=fa:16:3e:5f:b3:08,path=/tmp/unix/sock1.sock,queues=8,queue_size=1024 --no-pci -``` - -- Steps 4: Communication test between machine A(as server) with machine B - (as client) - -##### Run in machine A -```sh - #./dmm/release/bin/vs_epoll -p 20000 -d 192.168.21.180 -a 10000 -s 192.168.21.181 -l 1000 -t 500000 -i 0 -f 1 -r 20000 -n 1 -w 10 -u 50000 -e 10 -x 1 -``` -Note: - Means the current machine would be server, and it's -destination address is 192.168.21.180 (client address), -source address is 192.168.21.181(server address) - -##### Run in machine B -``` - #./dmm/release/bin/vc_common -p 20000 -d 192.168.21.181 -a 10000 -s 192.168.21.180 -l 1000 -t 500000 -i 0 -f 1 -r 20000 -n 1 -w 10 -u 50000 -e 10 -x 1 -``` -Note: - Means the current machine would be client, and it's -destination address is 192.168.21.181 (server address), -source address is 192.168.21.180(client address) - -# 3. Document description - -(dmm/stacks/lwip_stack/doc) - -## CMakeLists.txt -Control file for Cmake compiling. - -## config folder -##### module_config.json -- module_config.json is for configuring dmm protocol stack module. - -##### rd_config.json -- rd_config.json is to choose which module is better to go through, if subnet matches, It will go through lwip protocol stack when RD type is nstack-dpdk - -## lwip helper files. -lwip helper files is implmentation and modification of some supportive functions to run lwip with dmm. - -## lwip_stack/src folder - -- Implmetation of nStackMain process which provides the framework to hold lwip stack. - -## lwip_stack/lwip_src -- Downloaded opensource lwip 2.7.0. code. - -# 4. More Information -https://wiki.fd.io/view/DMM -https://savannah.nongnu.org/projects/lwip/ -http://lwip.wikia.com/wiki/LwIP_Wiki -[DMM_DeveloperManual.md](../../doc/DMM_DeveloperManual.md) - |