diff options
author | Alberto Compagno <acompagn+fdio@cisco.com> | 2020-04-23 14:23:36 +0200 |
---|---|---|
committer | Alberto Compagno <acompagn+fdio@cisco.com> | 2020-05-04 15:19:41 +0200 |
commit | 43d0ecbb1a1f7e1f72bf85441547b1678aed4350 (patch) | |
tree | 3da1d867acb6c8b735fbd76eeec51189b5d3996f /docs | |
parent | c1b56d5861829a23289f42cecd716e681b520cf0 (diff) |
[HICN-603] Cleanup code for managing route
- Remove old code to add and remove hicn route. Routes are now
added only through the ip route commands/apis
- Adjusted the cli to set the strategy for a particular prefix
- Adjusted libtransport consumer and producer app creation
- Adjusted sysrepo plugin. Added hicn enable and disable and removed old
api related to hicn routes and hicn faces
- Adjusted libhicnctrl. Only routes api and listener are now available
for hicn-plugin
Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
Change-Id: Ib4f7f45ba0b99253d60a9da2b295d6e783e5cd51
Diffstat (limited to 'docs')
-rw-r--r-- | docs/source/control.md | 59 | ||||
-rw-r--r-- | docs/source/vpp-plugin.md | 88 |
2 files changed, 30 insertions, 117 deletions
diff --git a/docs/source/control.md b/docs/source/control.md index 07010a8d1..9564a23af 100644 --- a/docs/source/control.md +++ b/docs/source/control.md @@ -149,60 +149,17 @@ controler_rpcs_instances.xml in the yang-model. Here you can find the content: <len>30</len> </route-get> -<route-del xmlns="urn:sysrepo:hicn"> - <prefix0>10</prefix0> - <prefix1>20</prefix1> - <len>30</len> -</route-del> - -<route-nhops-add xmlns="urn:sysrepo:hicn"> - <prefix0>10</prefix0> - <prefix1>20</prefix1> - <len>30</len> - <face_ids0>40</face_ids0> - <face_ids1>50</face_ids1> - <face_ids2>60</face_ids2> - <face_ids3>70</face_ids3> - <face_ids4>80</face_ids4> - <face_ids5>90</face_ids5> - <face_ids6>100</face_ids6> - <n_faces>110</n_faces> -</route-nhops-add> - -<route-nhops-del xmlns="urn:sysrepo:hicn"> - <prefix0>10</prefix0> - <prefix1>20</prefix1> - <len>30</len> - <faceid>40</faceid> -</route-nhops-del> - -<face-ip-params-get xmlns="urn:sysrepo:hicn"> +<face-params-get xmlns="urn:sysrepo:hicn"> <faceid>10</faceid> -</face-ip-params-get> - -<face-ip-add xmlns="urn:sysrepo:hicn"> - <nh_addr0>10</nh_addr0> - <nh_addr1>20</nh_addr1> - <swif>30</swif> -</face-ip-add> +</face-params-get> -<face-ip-del xmlns="urn:sysrepo:hicn"> - <faceid>0</faceid> -</face-ip-del> +<hicn-enable xmlns="urn:sysrepo:hicn"> + <prefix>b001::/64</prefix> +</hicn-enable> -<punting-add xmlns="urn:sysrepo:hicn"> - <prefix0>10</prefix0> - <prefix1>20</prefix1> - <len>30</len> - <swif>40</swif> -</punting-add> - -<punting-del xmlns="urn:sysrepo:hicn"> - <prefix0>10</prefix0> - <prefix1>20</prefix1> - <len>30</len> - <swif>40</swif> -</punting-del> +<hicn-disable xmlns="urn:sysrepo:hicn"> + <prefix>b001::/64</prefix> +</hicn-disable> ``` #### Run the plugin diff --git a/docs/source/vpp-plugin.md b/docs/source/vpp-plugin.md index f93479da8..7f49cd8b9 100644 --- a/docs/source/vpp-plugin.md +++ b/docs/source/vpp-plugin.md @@ -188,40 +188,6 @@ sudo vppctl vpp# hicn ? ``` -`hicn control param`: configures the internal parameter of the hICN plugin. -This command must be run before hicn control start. - -```bash -hicn control param { pit { size <entries> | { dfltlife | minlife | maxlife } <seconds> } | cs {size <entries> | app <portion to reserved to app>} } - <entries> :set the maximum number of entry in the PIT or CS. Default for PIT is 131072, for CS is 4096. CS size cannot be grater than PIT size. Moreover CS size must be smaller than (# of vlib buffer - 8196). - <seconds> :set the default, maximum or minimum lifetime of pit entries. Default value 2s (default), 0.2s (minumum), 20s (maximum) - <portion to reserved to app> :set the portion of CS to reserve to application running locally on the forwarder. Default is 30% of the cs size. -``` - -`hicn control start`: starts the hICN plugin in VPP. - -`hicn control stop` : stops the hICN plugin in VPP. Currently not supported. - -`hicn face app` : manipulates producer and consumer application faces in the forwarder. - -```bash -hicn face app {add intfc <sw_if> {prod prefix <hicn_prefix> cs_size <size_in_packets>} {cons}} | {del <face_id>} - <sw_if> :software interface existing in vpp on top of which to create an application face - <hicn_prefix> :prefix to bound to the producer application face. Only content matching the prefix will be allowed through such face. - <size_in_packets> :content store size associated to the producer face. - <face_id> :id of the face to remove -``` - -`hicn face ip`: manipulates ip application faces in the forwarder. - -```bash -hicn face ip {add [local <src_address>] remote <dst_address> intfc <sw_if>} | {del id <face_id>} - <src_address> :the IPv4 or IPv6 local IP address to bind to (not mandatory, if not specified the local address is one of the address assigned to sw_if) - <dst_address> :the IPv4 or IPv6 address of the remote system - <sw_if> :software interface on thop of which we create the face - <face_id> :id of the face to remove -``` - `hicn face show`: list the available faces in the forwarder. ```bash @@ -230,28 +196,6 @@ hicn face show [<face_id>| type <ip/udp>] <ip/udp> :shows all the ip or udp faces available ``` -`hicn face udp`: manipulates udp application faces in the forwarder. - -```bash -hicn face udp {add src_addr <src_address> port <src_port > dst_addr <dst_address> port <dst_port>} intfc <sw_if> | {del id <face_id>} - <src_address> :the IPv4 or IPv6 local IP address to bind to - <src_port> :the local UDP port - <dst_address> :the IPv4 or IPv6 address of the remote system - <dst_port> :the remote UDP port - <sw_if> :software interface on thop of which we create the face - <face_id> :id of the face to remove - -``` - -`hicn fib`: manipulates hicn fib entries. - -```bash -hicn fib {{add | delete } prefix <prefix> face <face_id> } | set strategy <strategy_id> prefix <prefix> - <prefix> :prefix to add to the FIB - <face_id> :face id to add as nexto hop in the FIB entry - <strategy_id> :set a strategy for the corresponding prefix -``` - `hicn pgen client`: set an vpp forwarder as an hicn packet generator client. ```bash @@ -291,6 +235,21 @@ hicn strategy mw set prefix <prefix> face <face_id> weight <weight> <weight> :weight ``` +`hicn enable`: enable hICN forwarding pipeline for an ip prefix. + +```bash +hicn enable <prefix> + <prefix> :prefix for which the hICN forwarding pipeline is enabled +``` + +`hicn disable`: disable hICN forwarding pipeline for an ip prefix. + +```bash +hicn enable <prefix> + <prefix> :prefix for which the hICN forwarding pipeline is disable +``` + + #### hICN plugin configuration file A configuration can be use to setup the hicn plugin when vpp starts. @@ -328,10 +287,8 @@ forwarders are connected through a dpdk link. sudo vppctl vpp# set interface ip address TenGigabitEtherneta/0/0 2001::2/64 vpp# set interface state TenGigabitEtherneta/0/0 up -vpp# hicn control start -vpp# hicn face ip add local 2001::2 remote 2001::3 intfc TenGigabitEtherneta/0/0 -vpp# hicn fib add prefix b002::1/64 face 0 -vpp# hicn punting add prefix b002::1/64 intfc TenGigabitEtherneta/0/0 type ip +vpp# ip route add b002::1/64 via remote 2001::3 TenGigabitEtherneta/0/0 +vpp# hicn enable b002::1/64 ``` #### Forwarder B (server) @@ -340,8 +297,6 @@ vpp# hicn punting add prefix b002::1/64 intfc TenGigabitEtherneta/0/0 type ip sudo vppctl vpp# set interface ip address TenGigabitEtherneta/0/1 2001::3/64 vpp# set interface state TenGigabitEtherneta/0/1 up -vpp# hicn control start -vpp# hicn punting add prefix b002::1/64 intfc TenGigabitEtherneta/0/1 type ip ``` Once the two forwarder are started, run the `ping_server` application on the @@ -380,6 +335,7 @@ sudo vppctl vpp# set interface ip address TenGigabitEtherneta/0/0 2001::2/64 vpp# set interface state TenGigabitEtherneta/0/0 up vpp# ip route add b001::/64 via 2001::3 TenGigabitEtherneta/0/0 +vpp# ip route add 2001::3 via TenGigabitEtherneta/0/0 vpp# hicn pgen client src 2001::2 name b001::1/64 intfc TenGigabitEtherneta/0/0 vpp# exec /<path_to>pg.conf vpp# packet-generator enable-stream hicn-pg @@ -419,8 +375,8 @@ vpp# hicn pgen server name b001::1/64 intfc TenGigabitEtherneta/0/1 sudo vppctl vpp# set interface ip address TenGigabitEtherneta/0/0 2001::2/64 vpp# set interface state TenGigabitEtherneta/0/0 up -vpp# hicn face ip add remote 2001::3 intfc TenGigabitEtherneta/0/0 -vpp# hicn fib add prefix b001::/64 face 0 +vpp# ip route add b001::/64 via 2001::3 TenGigabitEtherneta/0/0 +vpp# hicn enable b001::/64 vpp# create loopback interface vpp# set interface state loop0 up vpp# set interface ip address loop0 5002::1/64 @@ -442,7 +398,7 @@ vpp# create loopback interface vpp# set interface state loop0 up vpp# set interface ip address loop0 2002::1/64 vpp# ip neighbor loop1 2002::2 de:ad:00:00:00:00 -vpp# hicn face ip add remote 2002::2 intfc loop0 -vpp# hicn fib add prefix b001::/64 face 0 +vpp# ip route add b001::/64 via 2002::2 loop0 +vpp# hicn enable b001::/64 vpp# hicn pgen server name b001::1/64 intfc loop0 ``` |