Satya,

Some more info about the router plugin. I just realised that the current
extras/router-plugin
does not  build for 20.01 'cos of ip-neighbor/ updates in 20.01.
I'm going to push a short example below using BGP in FRR.

diff --git a/docs/source/control.md b/docs/source/control.md
index b7b5ebc..4464abd 100644
--- a/docs/source/control.md
+++ b/docs/source/control.md
@@ -370,3 +370,45 @@ add  "no ipv6 nd suppress-ra" to the first
configuration part of the /etc/frr/frr
 After the following configuration, the traffic over tap interface can be
observed
 via `tcpdump- i vpp1`. The neighborhood and route can be seen with the
 `show ipv6 ospf6 neighbor/route` command.
+
+## Configure VPP and FRRouting for BGP
+This document describes how to configure the VPP with hicn_router plugin
and FRR to enable the BGP protocol. The VPP and FRR
+are configured in a docker file.
+
+### DPDK configuration on host machine:
+```
+- Install and configure dpdk
+    - make install T=x86_64-native-linux-gcc && cd x86_64-native-linux-gcc
&& sudo make install
+    - modprobe uio
+    - modprobe uio_pci_generic
+    - dpdk-devbind --status
+    - the PCIe number of the desired device can be observed ("xxx")
+    - sudo dpdk-devbind -b uio_pci_generic "xxx"
+```
+### VPP configuration:
+
+```
+- Run and configure the VPP (hICN router plugin is required to be
installed in VPP)
+    - set int state TenGigabitEtherneta/0/0 up
+    - set int ip address TenGigabitEtherneta/0/0 10.0.10.1/24
+    - enable tap-inject  # This creates the taps by router plugin
+    - show tap-inject # This shows the created taps
+
+- Setup the tap interface
+    - ip addr add 10.0.10.1/24 dev vpp0
+    - ip link set dev vpp0 up
+```
+### FRR configuration:
+Assume there are two nodes with 1234,5678 AS numbers. This is the
configuration of node A with AS number 1234
+
+                                             (1234)A(2001::1) ======
(2001::2)B(5678)
+```
+   - /usr/lib/frr/frrinit.sh start &
+   - vtysh
+   - configure terminal
+   - router bgp 1234
+   - neighbor 2001::2 remote-as 5678
+   - address-family ipv6 unicast
+   - neighbor 2001::2 activate
+   - exit-address-family
+```
diff --git a/extras/router-plugin/rtinject/tap_inject_netlink.c
b/extras/router-plugin/rtinject/tap_inject_netlink.c
index a221e8e..f2b561e 100644
--- a/extras/router-plugin/rtinject/tap_inject_netlink.c
+++ b/extras/router-plugin/rtinject/tap_inject_netlink.c
@@ -16,13 +16,14 @@

 #include "../devices/rtnetlink/netns.h"
 #include <vlibmemory/api.h>
-#include <vnet/ip/ip6_neighbor.h>
+#include <vnet/ip-neighbor/ip_neighbor.h>
 #include <vnet/ip/lookup.h>
 #include <vnet/fib/fib.h>
-#include <vnet/ethernet/arp.h>
+#include <vnet/arp/arp.h>
 #include <arpa/inet.h>
 #include <linux/mpls.h>
 #include <vnet/mpls/packet.h>
+#include <vnet/ip-neighbor/ip_neighbor_types.h>

 #include "tap_inject.h"


This will break 19.08 but will support 20.01 as in our project we only
support the latest stable (there are tags on older releases though).
The BGP example may be useful for your use case. Consider it v
experimental but if you make it
working for your use case please share your findings with working
configurations in hicn-...@lists.fd.io.

The OSPF6 example is in here
https://hicn.readthedocs.io/en/latest/control.html#routing-plugin-for-vpp-and-frrouting-for-ospf6
but it has to be updated with also v4.

On Mon, Mar 9, 2020 at 12:13 PM Luca Muscariello <muscarie...@ieee.org>
wrote:

> FWIW, we have cloned the router plugin in here in our own project
> https://github.com/FDio/hicn/tree/master/extras/router-plugin
> tested in ubuntu 18LTS and FRR with BGP and OSPF.
> BGP works for IPv4 and IPv6. OSPF IPv4 works fine while IPv6 does not work
> because there is a
> VPP issue on ND and multicast that we did were unable to fix. The ND issue
> may be just related
> to the VMware ESXi environment we were using and may not show up in other
> platforms.
>
> I'll share some more info in the doc later on how we manage to configure
> and use the plugin with FRR.
>
> Luca
>
>
> On Mon, Mar 9, 2020 at 11:29 AM Satya Murthy <satyamurthy1...@gmail.com>
> wrote:
>
>> Hi ,
>>
>> I think, this topic has been discussed in few of the earlier questions,
>> but still I could not find a one that gave a workable solution in totality.
>> We are trying to write a BGP application which hosts BGP peering
>> sessions, using VPP as a dataplane entity.
>>
>> We tried following few options with issues mentioned below. I am also
>> attaching an image that we are trying to achieve.
>>
>> 1) Tried to clone VPP sandbox code for vpp router plugin. But, vppsb repo
>> does not seem to be available in the following path anymore.
>> https://gerrit.fd.io/r/vppsb
>> Is there a place where I can get this code ?
>> Or Is this obsoleted one ?
>>
>> 2) If vppsb is obsoleted, is there an alternative that works well for
>> this.
>> We tried punting approach by doing
>> a. set punt tcp
>> b. ip punt redirect add rx Interface/7/0.100 via 1.1.1.1 tapcli-0
>> However, here, we are seeing an ARP being sent from vpp-veth-ifc to
>> host-veth-interface and it is not able to resolve the ARP.
>> The redirect is getting triggered from VPP, but it is not reaching the
>> host due to the ARP issue.
>> Is there anything that we need to do for this ?
>>
>> Also, in this approach, the reverse path from vpp-host to the external
>> box, how will it work ?
>> The punt redirect config that we added, will it work for reverse path as
>> well ?
>>
>> Please help us here as we are kind of stuck with what approach we need to
>> take ?
>> ( we want to avoid the VPP-TCP-stack for the time being, as it will be
>> more effort to integrate our BGP app with VPP-TCP-stack,i.e VCL framework ).
>> --
>> Thanks & Regards,
>> Murthy
>>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#15706): https://lists.fd.io/g/vpp-dev/message/15706
Mute This Topic: https://lists.fd.io/mt/71831881/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to