From 75e91784c3a6968e5f69cf691484f9ff61468a5c Mon Sep 17 00:00:00 2001 From: Nitin Saxena Date: Wed, 31 Jul 2024 15:38:49 +0530 Subject: [PATCH] doc: add documentation for secgw-graph app - added steps to configure as IPv4 router - added steps to configure as IPsec gateway Signed-off-by: Nitin Saxena Change-Id: I84df59ef9ceca03cc3ba41fb390d43685ea4b26b Reviewed-on: https://sj1git1.cavium.com/c/IP/SW/dataplane/dpu-offload/+/132452 Tested-by: sa_ip-toolkits-Jenkins --- .../applications/img/secgw-graph-ipsec.png | Bin 0 -> 40757 bytes .../applications/img/secgw-graph-route.png | Bin 0 -> 34476 bytes doc/guides/applications/img/secgw-graph.png | Bin 59889 -> 36348 bytes doc/guides/applications/secgw-graph.rst | 567 +++++++++++++++++- 4 files changed, 544 insertions(+), 23 deletions(-) create mode 100644 doc/guides/applications/img/secgw-graph-ipsec.png create mode 100644 doc/guides/applications/img/secgw-graph-route.png diff --git a/doc/guides/applications/img/secgw-graph-ipsec.png b/doc/guides/applications/img/secgw-graph-ipsec.png new file mode 100644 index 0000000000000000000000000000000000000000..8fc77f1b26dac062e2027d7bd8e07c9bb6b07c6c GIT binary patch literal 40757 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

@G)j4!Ok8I6$2avQ4UG{jUK9#BNf zw{8bJgjK~~eMmArBAK<)_&H`~Ph-8oT6~Q3P~r2qX@sVEc5^D|nsF!xt=#w8TWH^F z`Q@m0W%Hl4dOW8~C(kc`hPTYpazRe1l=+vwSteHF`?9NRV1T(0SRD1rWn^PS-d(4a zl`u-a=&21wPOzfClufahkWJjQo!HglwrBU|t_6s#XY#E%7qbqk_|rU8L2bTL`&hy} zAiPj;BElgY6gSuteFQj-)!6BM+B;j;E9A>&V9c7N)Om>(czWUU!Vq%$G>Gi<7Pkvwd@|4F-;bQk=_9rk^51um0W7r*IsYT~1kw}kw z?8TY%O8Z+D|NGdKVS5lvb)#NIFFg{S5Ci7qy zUsLerE4gomm7IC+Z+`pGq8EAr_|=ql=yQ$z15KBv@sbfkUrc2WjK5LKCS zUz=SQ8PPL#4R8lMipX)hh4(SDz%9<~i-J_&vPtcTW>{k|&_blk=Wz$e`C$?dy;Rc- zB#JSZZ)s;OW)qvbn^A_cs(hB`EhosPPAIsWqe@+C+?C$<4zEy%Q(*5hNibLC7(e>> za8wwB`Td_+v1LtWp&n@`Tn|oR=ksi;q?cxnmqJNh15q z%4B{~k7)!C{)ii->1;l%i6R1N@S=c9ymrP#mqhBX`1YDM>&gnZ^IjjCsk@SP=y}Sg z|0Hl^ls$Mx(UDXnJxj1FxS=RWQ6z260^r9z0x60IHu{Z^y~bY~Q}H~NL!#GmHSsSG zbT9=*b4oSFO!YJ*UCPZU%=p4hagtI)Wrk`7Mq}%_?7h=>DufJB5;&k+32~=LE6#? z^*=u>pEQQ+V>jc$MnQ2*PL5GfiR+V-ylzbrXrgDp-LgLdin8Cd;J7GY2H$T?N_B*L zK3GZnr9WX0Rpuch=dQbE>|Dp$kEaL!ec)^AR0jcM$CP571b+;Dhg@ZoF=yh;S5A*&mNFlf)+>0Wqxxp)s`%P1WiSS zWl#!^({2XhgxKzI%o~><+ zJX_rvOq)~-0d_=3Pyx+qg@YFO&i(EsP!B0C4OC47J`&wJXhNK&8lXD#uvG@5lqP|eNfwEqve9@NG;1!< zlCz&Zv0tlH0Ah|FG-{G2AWO^ce*6UeHwJe`@+4+WRJw zf$)?m{XIK*a7ERfq7Ht65Ra1l*a2X`qJi&qp<+_wkf_W6|364skNiXzOg0Hr^MZ&5 ne_4F-N6ZiUPs?OKHyplbv>i)m-*$`w{>jTcdhk}tB;fx5dNYpg literal 0 HcmV?d00001 diff --git a/doc/guides/applications/img/secgw-graph.png b/doc/guides/applications/img/secgw-graph.png index e3019026785fc3244fdceba0bfb5838256b4ac63..f56c72cb858bb8fda4ea03a56f478fe37ddb7189 100644 GIT binary patch literal 36348 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

k)av(N$ag%^j)csU=_TWyYlyK^i>4JTwI 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 YJ%?_xztHdq-+jVJ&-_}c?(N9G0tdsUqyPW_ diff --git a/doc/guides/applications/secgw-graph.rst b/doc/guides/applications/secgw-graph.rst index 469ab00..ee40ea6 100644 --- a/doc/guides/applications/secgw-graph.rst +++ b/doc/guides/applications/secgw-graph.rst @@ -1,23 +1,29 @@ .. SPDX-License-Identifier: Marvell-MIT Copyright (c) 2024 Marvell. -**************** -Security Gateway -**************** -``secgw-graph`` is a security gateway application based on rte_graph library -which provides IP and IPsec functionality. +*********** +Secgw-graph +*********** +``dao-secgw-graph`` or simply ``secgw-graph`` is a DPDK based security gateway +application providing IPv4 and IPsec dataplane functionalities which is +integrated with LINUX for control plane configuration, via netlink protocol .. figure:: ./img/secgw-graph.png Features -------- - * DPDK rte_graph based fast path application integrated with LINUX control plane - * Supports integration with Strongswan daemon for SA negotiations + * DPDK rte_graph based fast path application integrated with LINUX control plane. + * Supports policy based tunnel mode IPsec via DPDK libIPsec library. (Transport mode IPsec not yet supported) + * Optimally leverages OCTEON10 inline IPsec protocol offload via rte_security APIs. + * Integrated with LINUX for control plane configurations using netlink protocol. + * Supports integration with ``strongswan daemon`` for IPsec SA/Policy negotiations * Supports dynamic addition of IP routes (LPM based) * Supports dynamic updates of IPsec SA and policies on a per-port basis. * Leverages ARP and ICMP functionality from LINUX - * Supports dynamic addition/deletion of ports forRQ polling in fast path - * Supports IPv4 (but not IPv6 yet) + * Supports dynamic addition/deletion of ports for RQ polling in fast path + * Supports IPv4 (IPv6 not yet supported) + +.. _secgw_setting_up_env: Setting up environment ------------------------- @@ -28,8 +34,14 @@ In case OCTEON is used as PCI endpoint, make sure SDP config is configured prope Setup huge pages for DPDK application ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Setup enough hugepages and a mount point for the same in order for the dao-secgw-graph application -to run. +Setup enough hugepages and a mount point for the same in order for the ``dao-secgw-graph`` application +to run. For example to setup 4GB of hugepages of each size 512MB + +.. code-block:: bash + + mkdir /dev/huge + mount -t hugetlbfs none /dev/huge + echo 8 > /proc/sys/vm/nr_hugepages Bind required RPM VF's to vfio-pci ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -88,10 +100,42 @@ Sample code to map CN10K INL_DEV_PF to vfio-pci. dpdk-devbind.py -u $INL_DEV_PF dpdk-devbind.py -b vfio-pci $INL_DEV_PF -Running the application ------------------------ +Setting up Host environment +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Perform following for configuring OCTEON as a PCIe endpoint to communicate with host via SDP interface + +Install CNXK PCIe driver on OCTEON +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: bash + + modprobe pcie_marvell_cnxk_ep + +Launch `octep_cp_agent` on OCTEON +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: bash + + # octep_cp_agent octep_cp_cn10kxx.cfg -Make sure number of tap devices provided in EAL command line is equal to number of RPM and SDP devices combined. The application has following command line options +.. note:: Follow the steps to :doc:`Octep_cp_agent <../howtoguides/octep_agent>` + +Insert OCTEON endpoint kernel driver on host +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: bash + + # git clone https://github.com/MarvellEmbeddedProcessors/pcie_ep_octeon_host + # cd pcie_ep_octeon_host + # make + # insmod drivers/octeon_ep/octeon_ep.ko + +Running `secgw-graph` +--------------------- + +Make sure number of tap devices provided in EAL command line is equal to number +of RPM and SDP devices combined. The application has following command line +options .. code-block:: console @@ -126,8 +170,8 @@ The following are the application command-line options: Optional argument. UDP Port on which app should listen for CLI connection. Default: ``8086`` -Example to run app -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Application bootup logs +~~~~~~~~~~~~~~~~~~~~~~~ Example to command to run ``dao-secgw-graph`` on 1 ethdev and 1 SDP dev port with two tap devices @@ -169,7 +213,6 @@ Example to command to run ``dao-secgw-graph`` on 1 ethdev and 1 SDP dev port wit [lcore 14] DAO_INFO: W1: Eth-rx-node Polling Vector: [P0, Q1], [P1, Q1], [lcore 14] DAO_INFO: W1: Tap-rx-node Polling Vector: [P2, Q1], [P3, Q1], - CLI terminal ~~~~~~~~~~~~ Connect to CLI terminal via telnet @@ -193,7 +236,7 @@ Example CLI commands ------------ -The following are the application CLI commands +The following are the supported application CLI commands * ``show ports`` @@ -279,10 +322,488 @@ The following are the application CLI commands 80.80.80.2/32 rpmpf-0 0: 0: 0: 1: 1: 0 unresolved 192.168.1.2/32 rpmpf-0 ? -Setting up Host environment ---------------------------- -TBD +Running as IPv4 router +---------------------- +``secgw-graph`` is capable of acting as an IPv4 router where routes can be +added at runtime. It relies on LINUX network stack for resolving ARP entries +while it maintains its own IP FIB lookup in fast-path + +Configuration +~~~~~~~~~~~~~ +Following example can be used as a reference to configure ``secgw-graph`` as an IPv4 router + +.. figure:: ./img/secgw-graph-route.png + +Launch `secgw-graph` on CN10K +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Launch ``secgw-graph`` on each CN10K with valid PCI BDFs and LINUX tap devices + +.. code-block:: console + + # ./build/app/dao-secgw-graph -a 0002:02:00.0 -a 0002:1f:00.1 -a 0002:20:00.1 -a 0002:0f:00.0 -c 0xf000 --vdev=net_tap0 --vdev=net_tap1 -- -s app/secgw-graph/cli/secgw.cli + +.. note:: PCI devices may vary on each OCTEON. Please refer to :ref:`section` + +IP assignments +^^^^^^^^^^^^^^ -Performance Tuning on Host +OCTEON connected to host1 ++++++++++++++++++++++++++ +Run following commands on OCTEON LINUX + +.. code-block:: console + + ip link set dev dtap1 address 00:0f:b7:22:22:22 + ip link set dev dtap0 address 00:0f:b7:06:55:1e + ifconfig dtap1 80.80.80.1/24 up + ifconfig dtap0 192.168.1.1/24 up + ip route add 60.60.60.2/32 via 192.168.1.2 dev dtap0 + +.. note:: Above command assumes that "dtap0" LINUX interface is paired with RPM device + while "dtap1" interface is paired with SDP. Pairing logs are printed in + application boot-up sequence + +host1 ++++++ + +.. code-block:: console + + ifconfig eth0 80.80.80.2/24 up + ip route add 60.60.60.0/24 via 80.80.80.1 + +.. note:: Above command assumes that "eth0" host interface connected to OCTEON + via SDP interface + +OCTEON connected to host2 ++++++++++++++++++++++++++ + +.. code-block:: console + + ip link set dev dtap1 address 00:0f:b7:11:11:11 + ip link set dev dtap0 address 00:0f:b7:06:55:1f + ifconfig dtap1 60.60.60.1/24 up + ifconfig dtap0 192.168.1.2/24 up + ip route add 80.80.80.2/32 via 192.168.1.1 dev dtap0 + +.. note:: Above command assumes that "dtap0" LINUX interface is paired with RPM device + while "dtap1" interface is paired with SDP. Pairing logs are printed in + application boot-up sequence + +host2 ++++++ + +.. code-block:: console + + ifconfig eth1 60.60.60.2/24 up + ip route add 80.80.80.0/24 via 60.60.60.1 + +.. note:: Above command assumes that "eth1" host interface connected to OCTEON + via SDP interface + +`ping` host2 IP from host1 ~~~~~~~~~~~~~~~~~~~~~~~~~~ -TBD +After above configuration user may need to resolve `partial routes` manually by +following :ref:`section`. `ping` or `iperf` is ready to +run between host1 and host2 + +.. code-block:: bash + + host-1# ping 60.60.60.2 + PING 60.60.60.2 (60.60.60.2) 56(84) bytes of data. + 64 bytes from 60.60.60.2: icmp_seq=1 ttl=62 time=0.604 ms + + --- 60.60.60.2 ping statistics --- + 1 packets transmitted, 1 received, 0% packet loss, time 0ms + rtt min/avg/max/mdev = 0.604/0.604/0.604/0.000 ms + +How it works +~~~~~~~~~~~~ +``secgw-graph`` creates a LINUX TAP device for each NIC device on OCTEON. In +other words, each NIC device (rpmvf, sdpvf) are paired with a unique ``tap`` +device on LINUX. Packets sent or received to/from these ``tap`` interfaces on +LINUX are cross-connected via ``secgw-graph`` to their respective paired +devices. Similarly, any control plane configurations on these ``tap`` interfaces +like IP address assignment, L2 address assignment would apply similar +configurations to their respective NIC devices (rpmvf or sdpvf etc) in +application + +.. code-block:: console + + # ifconfig dtap0 + dtap0: flags=4419 mtu 1500 + inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 + inet6 fe80::ec99:8bff:fe3c:e515 prefixlen 64 scopeid 0x20 + ether 00:0f:b7:06:55:1e txqueuelen 1000 (Ethernet) + RX packets 0 bytes 0 (0.0 B) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 169 bytes 11996 (11.7 KiB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + + # ifconfig dtap1 + dtap1: flags=4419 mtu 1500 + inet 80.80.80.1 netmask 255.255.255.0 broadcast 80.80.80.255 + inet6 fe80::1cc5:77ff:fe37:d469 prefixlen 64 scopeid 0x20 + ether 00:0f:b7:22:22:22 txqueuelen 1000 (Ethernet) + RX packets 37111 bytes 2230705 (2.1 MiB) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 173 bytes 12276 (11.9 KiB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + +.. note:: Tap interfaces allows secgw-graph to reuse LINUX control plane + functionalities like ARP resolution, IKE negotiations etc. + +.. _resolve_partial_routes: + +Resolving Partial Routes +~~~~~~~~~~~~~~~~~~~~~~~~ +``secgw-graph`` installs only `complete routes` (a route which is `connected` +with its ARP entry resolved) in its IP lookup table. A route with an unresolved +ARP is called as `partial route` and it will not be installed in IP lookup +table until its ARP entry is unresolved. Unresolved routes can be seen via +``show neigh`` commands from CLI + +.. code-block:: console + + secgw-graph> show neigh + Type IP Device Link addr + 80.80.80.2/32 rpmpf-0 0: 0: 0: 1: 1: 0 + unresolved 192.168.1.2/32 rpmpf-0 ? + +In above example, route to `80.80.80.2/32` is `complete or connected` while +route to `192.168.1.2/32` is `partial`. Often a manual ``ping`` to a `partial +route` from LINUX interface would resolve it's ARP + +.. code-block:: console + + # ping 192.168.1.1 + PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. + 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.026 ms + + --- 192.168.1.1 ping statistics --- + 1 packets transmitted, 1 received, 0% packet loss, time 0ms + rtt min/avg/max/mdev = 0.026/0.026/0.026/0.000 ms + + # telnet localhost:8086 + Connected to localhost:8086 + + WELCOME to Security Gateway App! + secgw-graph> show neigh + Type IP Device Link addr + 192.168.1.2/32 rpmpf-0 0: f:b7:11:11:11 + 80.80.80.2/32 sdpvf-1 0: 0: 0: 1: 1: 0 + secgw-graph> + +Running as IPsec gateway +------------------------ +``secgw-graph`` can behave as IPsec gateway where SA/SPD negotiations happens +via IKE daemon (like Strongswan) on LINUX. + + +Configuration +~~~~~~~~~~~~~ +Following example can be used as a reference to configure ``secgw-graph`` as an IPsec gateway + +.. _ipsec_figure: + +.. figure:: ./img/secgw-graph-ipsec.png + +.. note:: Following example assumes that Strongswan or any other IKE daemon is installed on OCTEON LINUX + +Configure Strongswan on OCTEON +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Perform configuring strongswan daemon on *both* OCTEON LINUX + +`swanctl.conf` +++++++++++++++ +Update ``/etc/strongswan.d/charon.conf`` to restrict IPsec SPI ranges from 500 to 5000 + +.. code-block:: console + + charon { + spi_max = 0x1388 + spi_min = 0x1f4 + } + +`ipsec.conf` +++++++++++++ +Update ``/etc/ipsec.conf`` on both OCTEON to reflect above network topology +as shown in :ref:`above figure` + +- Configure Tunnel mode IPsec between IP endpoints `192.168.1.1 <-> 192.168.1.2` +- SA rekeying disabled +- Anti-replay and ESN disabled +- IPsec algorithm as AES256-SHA1 +- IP subnets as shown in :ref:`figure` + +`ipsec.conf` on OCTEON connected to host1 +''''''''''''''''''''''''''''''''''''''''' +.. code-block:: console + + config setup + ... + ... + ... + + conn tunnel-dpu1-dpu2 + type=tunnel + auto=start + keyexchange=ikev2 + authby=secret + aggressive=no + keyingtries=%forever + ikelifetime=28800s + lifetime=3600s + rekey=no + left=192.168.1.1 + leftsubnet=80.80.80.0/24 + right=192.168.1.2 + rightsubnet=60.60.60.0/24 + replay_window=0 + esp=aes256-sha1-esn-noesn! + +`ipsec.conf` on OCTEON connected to host2 +''''''''''''''''''''''''''''''''''''''''' +.. code-block:: console + + config setup + ... + ... + ... + + conn tunnel-dpu2-dpu1 + type=tunnel + auto=start + keyexchange=ikev2 + authby=secret + aggressive=no + keyingtries=%forever + ikelifetime=28800s + lifetime=3600s + rekey=no + left=192.168.1.2 + leftsubnet=60.60.60.0/24 + right=192.168.1.1 + rightsubnet=80.80.80.0/24 + replay_window=0 + esp=aes256-sha1-esn-noesn! + +Assign IP and start IPsec daemon +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +host1 ++++++ + +.. code-block:: console + + ifconfig eth0 80.80.80.2/24 up + ip route add 60.60.60.0/24 via 80.80.80.1 + +.. note:: Above command assumes that "eth0" host interface connected to OCTEON + via SDP interface + +OCTEON connected to host1 ++++++++++++++++++++++++++ +Run following commands on OCTEON LINUX + +.. code-block:: console + + ipsec stop + ip link set dev dtap1 address 00:0f:b7:22:22:22 + ip link set dev dtap0 address 00:0f:b7:06:55:1e + ifconfig dtap1 80.80.80.1/24 up + ifconfig dtap0 192.168.1.1/24 up + ip route add 60.60.60.2/32 via 192.168.1.2 dev dtap0 + ipsec start + +.. note:: Above command assumes that "dtap0" LINUX interface is paired with RPM device + while "dtap1" interface is paired with SDP. Pairing logs are printed in + application boot-up sequence + +OCTEON connected to host2 ++++++++++++++++++++++++++ + +.. code-block:: console + + ipse stop + ip link set dev dtap1 address 00:0f:b7:11:11:11 + ip link set dev dtap0 address 00:0f:b7:06:55:1f + ifconfig dtap1 60.60.60.1/24 up + ifconfig dtap0 192.168.1.2/24 up + ip route add 80.80.80.2/32 via 192.168.1.1 dev dtap0 + ipsec start + +.. note:: Above command assumes that "dtap0" LINUX interface is paired with RPM device + while "dtap1" interface is paired with SDP. Pairing logs are printed in + application boot-up sequence + +host2 ++++++ + +.. code-block:: console + + ifconfig eth1 60.60.60.2/24 up + ip route add 80.80.80.0/24 via 60.60.60.1 + +.. note:: Above command assumes that "eth1" host interface connected to OCTEON + via SDP interface + +Check IPsec configuration +~~~~~~~~~~~~~~~~~~~~~~~~~ +Use ``ip xfrm`` command to verify IPsec configurations + +OCTEON connected to host1 +^^^^^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: bash + + # ip x s + src 192.168.1.1 dst 192.168.1.2 + proto esp spi 0x0000028b reqid 1 mode tunnel + replay-window 0 flag af-unspec + auth-trunc hmac(sha1) 0x7c7ce3a4f28bf3ab0f590a4c2e4ea87c59eb69a9 96 + enc cbc(aes) 0x6c248f224a25d5e3c39925cd056d1f3eff042ef1e8f104a0da39aee998a2d9c9 + anti-replay context: seq 0x0, oseq 0x0, bitmap 0x00000000 + src 192.168.1.2 dst 192.168.1.1 + proto esp spi 0x000009ad reqid 1 mode tunnel + replay-window 0 flag af-unspec + auth-trunc hmac(sha1) 0x520311d57e1eae550cfb50ec7924790455b0fdd0 96 + enc cbc(aes) 0xb3d76e12816f8c2953b879f2606f8b6b391c448b6c159bbec8634b237d5d1a9f + anti-replay context: seq 0x0, oseq 0x0, bitmap 0x00000000 + src 192.168.1.2 dst 192.168.1.1 + proto esp spi 0x00000002 reqid 1 mode tunnel + replay-window 0 + auth-trunc digest_null 0 + enc ecb(cipher_null) + anti-replay context: seq 0x0, oseq 0x0, bitmap 0x00000000 + sel src 0.0.0.0/0 dst 0.0.0.0/0 + src 192.168.1.1 dst 192.168.1.2 + proto esp spi 0x00000001 reqid 1 mode tunnel + replay-window 0 + auth-trunc digest_null 0 + enc ecb(cipher_null) + anti-replay context: seq 0x0, oseq 0x0, bitmap 0x00000000 + sel src 0.0.0.0/0 dst 0.0.0.0/0 + # + # ip x p + src 80.80.80.0/24 dst 60.60.60.0/24 + dir out priority 375423 + tmpl src 192.168.1.1 dst 192.168.1.2 + proto esp spi 0x0000028b reqid 1 mode tunnel + src 60.60.60.0/24 dst 80.80.80.0/24 + dir fwd priority 375423 + tmpl src 192.168.1.2 dst 192.168.1.1 + proto esp reqid 1 mode tunnel + src 60.60.60.0/24 dst 80.80.80.0/24 + dir in priority 375423 + tmpl src 192.168.1.2 dst 192.168.1.1 + proto esp reqid 1 mode tunnel + src 0.0.0.0/0 dst 0.0.0.0/0 + socket in priority 0 + src 0.0.0.0/0 dst 0.0.0.0/0 + socket out priority 0 + src 0.0.0.0/0 dst 0.0.0.0/0 + socket in priority 0 + src 0.0.0.0/0 dst 0.0.0.0/0 + socket out priority 0 + src ::/0 dst ::/0 + socket in priority 0 + src ::/0 dst ::/0 + socket out priority 0 + src ::/0 dst ::/0 + socket in priority 0 + src ::/0 dst ::/0 + socket out priority 0 + # + +OCTEON connected to host2 +^^^^^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: bash + + # ip x s + src 192.168.1.2 dst 192.168.1.1 + proto esp spi 0x000009ad reqid 1 mode tunnel + replay-window 0 flag af-unspec + auth-trunc hmac(sha1) 0x520311d57e1eae550cfb50ec7924790455b0fdd0 96 + enc cbc(aes) 0xb3d76e12816f8c2953b879f2606f8b6b391c448b6c159bbec8634b237d5d1a9f + anti-replay context: seq 0x0, oseq 0x0, bitmap 0x00000000 + src 192.168.1.1 dst 192.168.1.2 + proto esp spi 0x0000028b reqid 1 mode tunnel + replay-window 0 flag af-unspec + auth-trunc hmac(sha1) 0x7c7ce3a4f28bf3ab0f590a4c2e4ea87c59eb69a9 96 + enc cbc(aes) 0x6c248f224a25d5e3c39925cd056d1f3eff042ef1e8f104a0da39aee998a2d9c9 + anti-replay context: seq 0x0, oseq 0x0, bitmap 0x00000000 + src 192.168.1.2 dst 192.168.1.1 + proto esp spi 0x00000002 reqid 1 mode tunnel + replay-window 0 + auth-trunc digest_null 0 + enc ecb(cipher_null) + anti-replay context: seq 0x0, oseq 0x0, bitmap 0x00000000 + sel src 0.0.0.0/0 dst 0.0.0.0/0 + src 192.168.1.1 dst 192.168.1.2 + proto esp spi 0x00000001 reqid 1 mode tunnel + replay-window 0 + auth-trunc digest_null 0 + enc ecb(cipher_null) + anti-replay context: seq 0x0, oseq 0x0, bitmap 0x00000000 + sel src 0.0.0.0/0 dst 0.0.0.0/0 + # + # ip x p + src 60.60.60.0/24 dst 80.80.80.0/24 + dir out priority 375423 + tmpl src 192.168.1.2 dst 192.168.1.1 + proto esp spi 0x000009ad reqid 1 mode tunnel + src 80.80.80.0/24 dst 60.60.60.0/24 + dir fwd priority 375423 + tmpl src 192.168.1.1 dst 192.168.1.2 + proto esp reqid 1 mode tunnel + src 80.80.80.0/24 dst 60.60.60.0/24 + dir in priority 375423 + tmpl src 192.168.1.1 dst 192.168.1.2 + proto esp reqid 1 mode tunnel + src 0.0.0.0/0 dst 0.0.0.0/0 + socket in priority 0 + src 0.0.0.0/0 dst 0.0.0.0/0 + socket out priority 0 + src 0.0.0.0/0 dst 0.0.0.0/0 + socket in priority 0 + src 0.0.0.0/0 dst 0.0.0.0/0 + socket out priority 0 + src ::/0 dst ::/0 + socket in priority 0 + src ::/0 dst ::/0 + socket out priority 0 + src ::/0 dst ::/0 + socket in priority 0 + src ::/0 dst ::/0 + socket out priority 0 + # + +`ping` host2 IP from host1 +~~~~~~~~~~~~~~~~~~~~~~~~~~ +After above configuration user may need to resolve `partial routes` manually by +following :ref:`section`. `ping` or `iperf` is ready to +run between host1 and host2 + +.. code-block:: bash + + host-1# ping 60.60.60.2 + PING 60.60.60.2 (60.60.60.2) 56(84) bytes of data. + 64 bytes from 60.60.60.2: icmp_seq=1 ttl=62 time=0.604 ms + + --- 60.60.60.2 ping statistics --- + 1 packets transmitted, 1 received, 0% packet loss, time 0ms + rtt min/avg/max/mdev = 0.604/0.604/0.604/0.000 ms + +Planned Features +---------------- +- Support IPv6 routing +- Support IP fragmentation +- Support 100G as PCI endpoint by integrating virtio on OCTEON +- Support for lookaside IPsec protocol support + +Known Issues +------------ +#. Application is in POC state but it is targeted to be production ready in future +#. IPsec SA renegotiations are not yet supported +#. Routes deletions are not yet supported +#. ``secgw-graph`` when launched with CLI file argument becomes unresponsive with Ctrl-C or Ctrl-D commands. Please use ``kill`` command to terminate the program. Although CLI telnet session would remain responsive with no affect to fast path traffic +