Re: [vpp-dev] Update to iOAM using latest IETF draft #vpp

2020-08-04 Thread Justin Iurman
Mauricio,

> Justin,
> 
> I too am working on my master thesis, but I'm set to finish in December.

Hmm, I see.

> Currently, we're looking at video streaming and would like to get telemetry
> data for buffer occupancy, queue depth, and transit delays.  VPP seems the 
> best
> viable (and free) option for use.

Indeed. You can already take a look at M-Anycast [1] which combines IOAM and 
SRv6. There is a demo with video streaming, so you might be interested. But, 
again, this is based on the old IOAM implementation inside VPP. If you really 
want or need to refresh the IOAM implem, feel free to contact me in private and 
I'll put you in touch with the other student so that you can collaborate.

On a side note, I've recently posted a first version of the IOAM patch for the 
Linux kernel [2]. So hopefully, it may be available soon in the kernel too 
(this one is up-to-date with drafts).

Justin

[1] https://github.com/CiscoDevNet/iOAM/tree/master/M-Anycast
[2] https://www.mail-archive.com/netdev@vger.kernel.org/msg333936.html

> Mauricio
> 
> -Original Message-
> From: Justin Iurman 
> Sent: maandag 3 augustus 2020 17:11
> To: Solis JR, M. (Mauricio) 
> Cc: vpp-dev ; Shwetha Bhandari (shwethab)
> 
> Subject: Re: [vpp-dev] Update to iOAM using latest IETF draft #vpp
> 
> Mauricio,
> 
>> Justin,
>> Do you know the release date for the updated iOAM plugin on the latest
>> ietf draft?
> 
> Not really. This is actually a student and he's going to do it for his master
> thesis. Who knows for the precise date, but he will start soon... so I'd say
> during first 2021 semester (or trimester hopefully).
> 
> Out of curiosity, what are you working on with IOAM so that you want to 
> refresh
> the VPP implem?
> 
> Justin
> 
>> Mauricio
>> 
>> -Original Message-
>> From: Justin Iurman 
>> Sent: woensdag 29 juli 2020 14:26
>> To: Solis JR, M. (Mauricio) 
>> Cc: vpp-dev ; Shwetha Bhandari (shwethab)
>> 
>> Subject: Re: [vpp-dev] Update to iOAM using latest IETF draft #vpp
>> 
>> Hi Mauricio,
>> 
>> CC'ing Shwetha, she implemented the IOAM plugin. Last time I checked,
>> IOAM namespaces were not included, so it is probably based on the -03
>> version of draft-ietf-ippm-ioam-data. Actually, just to let you know,
>> there is already someone that is going to rebase the implementation on the 
>> last
>> draft version.
>> 
>> Justin
>> 
>>> Hi,
>>> 
>>> I noticed that the current iOAM plugin implementation is using the
>>> first IETF drafts, so I'm thinking about trying to update the iOAM
>>> implementation in VPP using the latest. I first just want to make
>>> sure there that this update is not in the immediate VPP release
>>> pipeline since I do not wish to do work that has already been done.
>>> I'm also uncertain about the amount of work it will require to update
>>> the plugin, but I have already dug into the code and it doesn't seem "too" 
>>> bad.
>>> 
>>> Regards,
>>> 
>>> Mauricio
>> This message may contain information that is not intended for you. If
>> you are not the addressee or if this message was sent to you by
>> mistake, you are requested to inform the sender and delete the
>> message. TNO accepts no liability for the content of this e-mail, for
>> the manner in which you use it and for damage of any kind resulting
> > from the risks inherent to the electronic transmission of messages.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

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


Re: [vpp-dev] Update to iOAM using latest IETF draft #vpp

2020-08-03 Thread Justin Iurman
Mauricio,

> Justin,
> Do you know the release date for the updated iOAM plugin on the latest ietf
> draft?

Not really. This is actually a student and he's going to do it for his master 
thesis. Who knows for the precise date, but he will start soon... so I'd say 
during first 2021 semester (or trimester hopefully).

Out of curiosity, what are you working on with IOAM so that you want to refresh 
the VPP implem?

Justin

> Mauricio
> 
> -Original Message-
> From: Justin Iurman 
> Sent: woensdag 29 juli 2020 14:26
> To: Solis JR, M. (Mauricio) 
> Cc: vpp-dev ; Shwetha Bhandari (shwethab)
> 
> Subject: Re: [vpp-dev] Update to iOAM using latest IETF draft #vpp
> 
> Hi Mauricio,
> 
> CC'ing Shwetha, she implemented the IOAM plugin. Last time I checked, IOAM
> namespaces were not included, so it is probably based on the -03 version of
> draft-ietf-ippm-ioam-data. Actually, just to let you know, there is already
> someone that is going to rebase the implementation on the last draft version.
> 
> Justin
> 
>> Hi,
>> 
>> I noticed that the current iOAM plugin implementation is using the
>> first IETF drafts, so I'm thinking about trying to update the iOAM
>> implementation in VPP using the latest. I first just want to make sure
>> there that this update is not in the immediate VPP release pipeline
>> since I do not wish to do work that has already been done. I'm also
>> uncertain about the amount of work it will require to update the
>> plugin, but I have already dug into the code and it doesn't seem "too" bad.
>> 
>> Regards,
>> 
>> Mauricio
> This message may contain information that is not intended for you. If you are
> not the addressee or if this message was sent to you by mistake, you are
> requested to inform the sender and delete the message. TNO accepts no 
> liability
> for the content of this e-mail, for the manner in which you use it and for
> damage of any kind resulting from the risks inherent to the electronic
> transmission of messages.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

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


Re: [vpp-dev] Update to iOAM using latest IETF draft #vpp

2020-07-29 Thread Justin Iurman
Hi Mauricio,

CC'ing Shwetha, she implemented the IOAM plugin. Last time I checked, IOAM 
namespaces were not included, so it is probably based on the -03 version of 
draft-ietf-ippm-ioam-data. Actually, just to let you know, there is already 
someone that is going to rebase the implementation on the last draft version.

Justin

> Hi,
> 
> I noticed that the current iOAM plugin implementation is using the first IETF
> drafts, so I'm thinking about trying to update the iOAM implementation in VPP
> using the latest. I first just want to make sure there that this update is not
> in the immediate VPP release pipeline since I do not wish to do work that has
> already been done. I'm also uncertain about the amount of work it will require
> to update the plugin, but I have already dug into the code and it doesn't seem
> "too" bad.
> 
> Regards,
> 
> Mauricio
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

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


Re: [vpp-dev] P4 INT( Inband Network Telemetry)

2019-09-17 Thread Justin Iurman
Davi,

The introduction of IOAM namespaces was the big addition and came with version 
4 of the draft. Since then, some other (small) modifications were also added 
here and there.

Last time I talked to Shwetha during IETF, she told me it was planned to update 
vpp/ioam to a more recent version of the draft (i.e., adding support for IOAM 
namespaces). Now that the draft is mature, you should see updates soon (both 
for kernel and vpp).

AFAIK, HbH options are already up to date (maybe not all?). Only the very last 
version of the draft (version 7) introduces a change on Trace Option's 
bitfield, which causes a reordering of options (mainly for opaque snap and csum 
complement options). That's the same for my kernel implementation, which is not 
yet up to date with version 7 (will update it ASAP). Things are evolving from a 
draft point of view, which will ease interoperability tests between kernel & 
vpp (it's on the todo list).

Cheers,
Justin

- Mail original -
> De: "Davi Scofield" 
> À: shwet...@cisco.com
> Cc: "vpp-dev" 
> Envoyé: Mardi 17 Septembre 2019 02:20:34
> Objet: Re: [vpp-dev] P4 INT( Inband Network Telemetry)

> Hi, Shwetha,
> There are many changes in IETF draft [
> https://www.ietf.org/id/draft-ietf-ippm-ioam-data-07.txt. |
> https://www.ietf.org/id/draft-ietf-ippm-ioam-data-07.txt. And they also give a
> demo on IETF 105# Hackathons, this demo implentented the IPv6 Hop-by-hop
> options to support IOAM in Linux kernel. To see
> https://github.com/IETF-Hackathon/ietf105-project-presentations/blob/master/ioam-hbh-option.pdf.
> ]
> Do you have develop plan to update the VPP to the IOAM latest 
> version,including
> IPV6 Hop-by-hop option?
> 
> Thanks,
> Davi
> 
> 
> 
> 
> 
> At 2019-06-06 07:58:22, "Shwetha bhandari via Lists.Fd.Io"
>  wrote:
> 
> 
> 
> 
> 
> Hi Davi,
> 
> 
> 
> We have an reference implementation of In-situ OAM (IOAM) in VPP - [
> https://docs.fd.io/vpp/18.07/ioam_plugin_doc.html |
> https://docs.fd.io/vpp/18.07/ioam_plugin_doc.html ] , that provides Inband
> network telemetry being defined at IETF - [
> https://tools.ietf.org/html/draft-ietf-ippm-ioam-data-05 |
> https://tools.ietf.org/html/draft-ietf-ippm-ioam-data-05 ] .
> 
> IOAM and P4 INT both are defined to provide a way to add and collect packet
> trace and operational state of the nodes that forward the packet.
> 
> 
> 
> Thanks,
> 
> Shwetha
> 
> 
> 
> 
> From:  on behalf of Davi Scofield 
> Date: Wednesday, June 5, 2019 at 1:43 PM
> To: Davi Scofield 
> Cc: vpp-dev 
> Subject: [vpp-dev] P4 INT( Inband Network Telemetry)
> 
> 
> 
> 
> 
> 
> 
> 
> Hello,
> 
> 
> How to implement P4 Inband Network Telemetry function in current VPP? Is there
> anyone want to use this feature?
> 
> 
> Thanks !
> 
> 
> Davi
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

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


Re: Re : [vpp-dev] Maintainer router plugin

2018-12-10 Thread Justin Iurman
Hi Jerome,

> Regarding multi instance, have you considered running multiple instances of 
> VPP
> in different containers?

I did, however this is not an option as I'd like to keep my "entire topology 
running on the same machine" philosophy.

Also, I think this could be a plus for the router plugin to handle 
multi-instance/memif setups. Though, I don't see how we could do.

Cheers,
Justin
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

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


Re: [vpp-dev] Maintainer router plugin

2018-12-08 Thread Justin Iurman
Hi Hongjun,

> There is no plan to use memif at present. Welcome your contribution if you 
> will.

Of course, if I find some free time. Anyone interested in working on this ?

> In router plugin, we inject links, routes, etc. from different namespace in
> Kernel into different VRFs In VPP.
> Not support multi-instance mode.

How do you determine which namespace(s) to look at ? Or do you take care of all 
namespaces by default ?

Also, would multi-instance mode be feasible ?

Cheers,
Justin
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

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


Re: [vpp-dev] Maintainer router plugin

2018-12-07 Thread Justin Iurman
Guys,

Any plan to use memif interfaces for router plugin ? Also, is there a plan to 
implement a multi-instance mode ? Because, for now, "enable tap-inject" only 
works for one router, and not others, when I run multiples VPP instances on a 
same machine.

Thanks,
Justin

> Hi Jan,
>  
> A VPP packet trace and the output from “sh ip mfib’ would help diagnose your 
> multicast packet drops.
>  
> /neale
>  
> From:  on behalf of Jan Hugo Prins | BetterBe 
> 
> Date: Wednesday, 11 April 2018 at 20:54
> To: Ole Troan 
> Cc: vpp-dev , Ray Kinsella 
> Subject: Re: [vpp-dev] Maintainer router plugin
>  
> Hi Ole,
> 
> I really don't mind that you all derailed my discussion. I think a good 
> design discussion is a good thing. Especially when the end result is a better 
> product, or in this case, better integration between products.
> What I have found with respect to OSPFv3, is that the OSPF multicast packets 
> are being dropped at the router edge. See my earlier message with the PCAP 
> file.
> 
> I currently have no idea why my OSPFv2 routers are not properly installed in 
> the VPP IP FIB, while they are in the Linux IP FIB.
> 
> Jan Hugo Prins
> 
> 
> On 04/11/2018 07:37 PM, Ole Troan wrote:
> Jan Hugo,
>  
> But this basically means that, for now, it won't be possible to create a BGP 
> router with a combination of FRR and VPP doing both IPv4 and IPv6 with OSPF 
> and BGP.
> Or do you see possibilities to make OSPFv3 work?
> Sorry, for derailing your thread and making it into an architectural 
> discussion. ;-)
> If you ask my opinion, I would probably prefer it not to go into the main 
> repository.
>  
> That said, if it works for OSPFv2, one shouldn't think it would be that hard 
> to make it work for OSPFv3 either.
> Probably some ARP/ND issues? Ray, would you know?
>  
> Best regards,
> Ole
>  
>  
>  
> Jan Hugo Prins
>  
>  
> On 04/11/2018 03:20 PM, Ray Kinsella wrote:
> Hi Ole,
>  
> I agree - but completely reinventing the wheel is not a the best course 
> either. These are tried and tested implementations and are worth reusing, I 
> do agree that integrating through the Linux Kernel is not ideal.
>  
> We developed the router plugin to show that integration was possible we never 
> claimed that it was the 'best' way to integrate either.
>  
> Plugging a Quagga/FRR/Bird etc into VPP/HC is definitely the better path. 
> Historically it has been hard with Quagga due to GPL licensing, I understand 
> that FRR is the easiest path.
>  
> Ray K
>  
> On 11/04/2018 09:33, Ole Troan wrote:
> Hi Jan,
>  
> Is someone actively maintaining the router plugin?
> I'm not a big fan of the router plugin.
> The starting point of the router plugin is "how can you take an unmodified 
> routing protocol implementation and make it work with VPP".
> That leads to all kinds of complexities as the two methods they tried shows.
>  
> If we change the premise does the solution space look better?
>  
> I think we could change the routing protocol implementation to talk directly 
> with VPP's API for interfaces / interface events, it programs the VPP FIB 
> directly.
> Then it could send and receive packets somewhat similar to what we have for 
> the punt Unix domain socket.
> We might need a better punt path mechanism, where a Linux application can 
> register for a particular IP protocol (like 89 for OSPF) on a particular 
> interface. But that should be easy to do.
>  
> I did have a brief chat with David Lamparter of Quagga fame and he had 
> thought about doing it in a similar way.
>  
> What is your particular use case? Is it just a routing protocol you need?
>  
> Best regards,
> Ole
>  
>  
>  
>  
>  
>  
>  
> --
> Kind regards
>  
> Jan Hugo Prins
> DevOps Engineer
> 
> Auke Vleerstraat 140 E
> 7547 AN Enschede
> CC no. 08097527  T +31 (0) 53 48 00 694
> E jpr...@betterbe.com
> M +31 (0)6 263 58 951   www.betterbe.com
>   
>  
> 
> 
> -- 
> Kind regards
> 
> Jan Hugo Prins
> DevOps Engineer
> 
> Auke Vleerstraat 140 E
> 7547 AN Enschede
> CC no. 08097527
> T +31 (0) 53 48 00 694
> E jpr...@betterbe.com
> M +31 (0)6 263 58 951
> www.betterbe.com
> BetterBe accepts no liability for the content of this email, or for the 
> consequences of any actions taken on the basis
> of the information provided, unless that information is subsequently 
> confirmed in writing. If you are not the intended
> recipient you are notified that disclosing, copying, distributing or taking 
> any action in reliance on the contents of this
> information is strictly prohibited.
> ,_._,_
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

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


[vpp-dev] vpp with router plugin + FRRouting

2018-12-07 Thread Justin Iurman
[Re-sending with attachment .sh -> .txt to avoid being blocked]

Hi folks,

I'm working with multiple VPP instances on a same (virtual) machine, in order 
to simulate a topology. Now, I'd like to simulate a topology between ASes with 
BGP. For that, I followed the process described on this page [1], which is for 
one single VPP instance running on the virtual machine. The hardest part is to 
tell FRRouting to run in multiple-instance mode (or something similar, I 
think). I created namespaces for ASes (including hosts) while routers are VPP 
instances (with the router plugin from the VPP Sandbox).

My question is... Is it possible to use FRR (BGP, actually) with multiple VPP 
instances on a same machine ? I get the whole thing about VRF etc on FRR/Quagga 
documentation, but how does it work in order to integrate things with multiple 
VPP instances ? I can't use VRF (at least, I think so), since VPP instances (my 
routers) are NOT running in namespaces. Also, how does FRR know how to 
communicate (do they?) with VPP instances ? The same question could be applied 
to the VPP+BIRD alternative [2].

In attachment, for those who want (or if it helps understanding the use case), 
you will find a graphical representation of the topology as well as a script 
that sets the topology up.

Thanks for your help.
Cheers,

Justin

   [1] https://github.com/FRRouting/frr/wiki/Alternate-forwarding-planes:-VPP
   [2] https://wiki.fd.io/view/VPP_Sandbox/router

# enable kernel forwarding
sudo sysctl -w net.ipv4.ip_forward=1

# VPP Routers
sudo vpp unix { cli-listen /run/vpp/cli-r10.sock } api-segment { prefix r10 }
sudo vpp unix { cli-listen /run/vpp/cli-r20.sock } api-segment { prefix r20 }
sudo vpp unix { cli-listen /run/vpp/cli-r30.sock } api-segment { prefix r30 }
sudo vpp unix { cli-listen /run/vpp/cli-r40.sock } api-segment { prefix r40 }
sleep 1

# AS10 Namespace
sudo ip netns add ns_as10
sudo ip link add name peer_u10 type veth peer name peer_r10
sudo ip link set dev peer_r10 up group 1
sudo ip link set dev peer_u10 up netns ns_as10
sudo ip netns exec ns_as10 \
  bash -c "
ip link set dev lo up
ip addr add 80.5.3.2/24 dev peer_u10
ip route add default via 80.5.3.1
ethtool -K peer_u10 rx off tx off"

# AS20 Namespace
sudo ip netns add ns_as20
sudo ip link add name peer_u20 type veth peer name peer_r20
sudo ip link set dev peer_r20 up group 1
sudo ip link set dev peer_u20 up netns ns_as20
sudo ip netns exec ns_as20 \
  bash -c "
ip link set dev lo up
ip addr add 76.35.2.2/24 dev peer_u20
ip route add default via 76.35.2.1
ethtool -K peer_u20 rx off tx off"

# AS30 Namespace
sudo ip netns add ns_as30
sudo ip link add name peer_u30 type veth peer name peer_r30
sudo ip link set dev peer_r30 up group 1
sudo ip link set dev peer_u30 up netns ns_as30
sudo ip netns exec ns_as30 \
  bash -c "
ip link set dev lo up
ip addr add 36.7.1.2/24 dev peer_u30
ip route add default via 36.7.1.1
ethtool -K peer_u30 rx off tx off"

# AS40 Namespace
sudo ip netns add ns_as40
sudo ip link add name peer_u40_1 type veth peer name peer_r40_1
sudo ip link add name peer_u40_2 type veth peer name peer_r40_2
sudo ip link set dev peer_r40_1 up group 1
sudo ip link set dev peer_r40_2 up group 1
sudo ip link set dev peer_u40_1 up netns ns_as40
sudo ip link set dev peer_u40_2 up netns ns_as40
sudo ip netns exec ns_as40 \
  bash -c "
ip link set dev lo up
ip addr add 18.9.5.2/24 dev peer_u40_1
ip addr add 18.9.4.2/24 dev peer_u40_2
ip route add 18.9.5.0/24 via 18.9.5.1 dev peer_u40_1
ip route add 18.9.4.0/24 via 18.9.4.1 dev peer_u40_2
ethtool -K peer_u40_1 rx off tx off
ethtool -K peer_u40_2 rx off tx off"

# AS10 <-> R10
sudo vppctl -s /run/vpp/cli-r10.sock create host-interface name peer_r10
sudo vppctl -s /run/vpp/cli-r10.sock set interface state host-peer_r10 up
sudo vppctl -s /run/vpp/cli-r10.sock set interface ip address host-peer_r10 
80.5.3.1/24

# AS20 <-> R20
sudo vppctl -s /run/vpp/cli-r20.sock create host-interface name peer_r20
sudo vppctl -s /run/vpp/cli-r20.sock set interface state host-peer_r20 up
sudo vppctl -s /run/vpp/cli-r20.sock set interface ip address host-peer_r20 
76.35.2.1/24

# AS30 <-> R30
sudo vppctl -s /run/vpp/cli-r30.sock create host-interface name peer_r30
sudo vppctl -s /run/vpp/cli-r30.sock set interface state host-peer_r30 up
sudo vppctl -s /run/vpp/cli-r30.sock set interface ip address host-peer_r30 
36.7.1.1/24

# AS40 <-> R40
sudo vppctl -s /run/vpp/cli-r40.sock create host-interface name peer_r40_1
sudo vppctl -s /run/vpp/cli-r40.sock create host-interface name peer_r40_2
sudo vppctl -s /run/vpp/cli-r40.sock set interface state host-peer_r40_1 up
sudo vppctl -s /run/vpp/cli-r40.sock set interface state host-peer_r40_2 up
sudo vppctl -s /run/vpp/cli-r40.sock set interface ip address host-peer_r40_1 
18.9.5.1/24
sudo vppctl -s /run/vpp/cli-r40.sock set interface ip address host-peer_r40_2 
18.9.4.1/24

# R10 <-> R20
sudo vppctl -s /run/vpp/

[vpp-dev] vpp with router plugin + FRRouting

2018-12-07 Thread Justin Iurman
Hi folks,

I'm working with multiple VPP instances on a same (virtual) machine, in order 
to simulate a topology. Now, I'd like to simulate a topology between ASes with 
BGP. For that, I followed the process described on this page [1], which is for 
one single VPP instance running on the virtual machine. The hardest part is to 
tell FRRouting to run in multiple-instance mode (or something similar, I 
think). I created namespaces for ASes (including hosts) while routers are VPP 
instances (with the router plugin from the VPP Sandbox).

My question is... Is it possible to use FRR (BGP, actually) with multiple VPP 
instances on a same machine ? I get the whole thing about VRF etc on FRR/Quagga 
documentation, but how does it work in order to integrate things with multiple 
VPP instances ? I can't use VRF (at least, I think so), since VPP instances (my 
routers) are NOT running in namespaces. Also, how does FRR know how to 
communicate (do they?) with VPP instances ? The same question could be applied 
to the VPP+BIRD alternative [2].

In attachment, for those who want (or if it helps understanding the use case), 
you will find a graphical representation of the topology as well as a script 
that sets the topology up.

Thanks for your help.
Cheers,

Justin

   [1] https://github.com/FRRouting/frr/wiki/Alternate-forwarding-planes:-VPP
   [2] https://wiki.fd.io/view/VPP_Sandbox/router


setup_topology.sh
Description: application/shellscript


BGP_simple_topo.pdf
Description: Adobe PDF document
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

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


Re: [vpp-dev] vpp_api_test via socket file

2018-05-11 Thread Justin Iurman
Peter,

> …however, are there any other options to full control 2+ instances of VPP via 
> API (not vppctl)? PythonAPI for example [1].

Ole’s answer to the same question:

> r = vpp.connect('vpp1', chroot_prefix='name of shared address segment')

Cheers,

Justin

Re: [vpp-dev] Python API for specific VPP instance

2018-05-05 Thread Justin Iurman
Ole,

> Yes. Set chroot_prefix.
> r = vpp.connect('vpp1', chroot_prefix='name of shared address segment')

My bad, I didn't thought about looking at the python code of the "connect" 
method.
Thanks a million ! 

Another related question (see https://lists.fd.io/g/vpp-dev/message/9001 as a 
reference), is there any documentation on the API grammar ? I mean, I can't 
find anything about some keywords such as "manual_endian" or "manual_print", 
even though I can guess their use and how to use them by looking at existing 
codes. It'd be nice to have such documentation.

Thanks again,

Justin

-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#9179): https://lists.fd.io/g/vpp-dev/message/9179
View All Messages In Topic (3): https://lists.fd.io/g/vpp-dev/topic/18138970
Mute This Topic: https://lists.fd.io/mt/18138970/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-



[vpp-dev] Python API for specific VPP instance

2018-05-02 Thread Justin Iurman
Hi guys,

How can I "connect" to a specific instance of VPP through the python API ?

Each instance (together, they form a topology) is run as follow:
  sudo vpp unix { log /tmp/vpp1.log cli-listen /run/vpp/cli-vpp1.sock } 
api-segment { prefix vpp1 } plugins { plugin dpdk_plugin.so { disable } }

In python, usually, we do:
  vpp = VPP(jsonfiles)
  r = vpp.connect("xxx")

Is it possible to connect to a "prefix" (eg "vpp1") to only interact with a 
specific instance ?
Let's say, for instance, something like this:
  r = vpp.connect("vpp1")

Thanks,

Justin

-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#9147): https://lists.fd.io/g/vpp-dev/message/9147
View All Messages In Topic (1): https://lists.fd.io/g/vpp-dev/topic/18138970
Mute This Topic: https://lists.fd.io/mt/18138970/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-



Re: [vpp-dev] Plugin API grammar

2018-04-23 Thread Justin Iurman
Ping Dave, as I'm sure he knows what could help here.

Justin

> Hi folks,
> 
> After having developed a new plugin, I'm now implementing its API in order to
> use it from a GUI.
> 
> Is there an official documentation of the API grammar (other than inside
> vppapigen) ? By looking at the code, I already found that it's possible to
> include a structure in a request/response. Which is good because I'll need it.
> But what about some keywords like "manual_endian", "manual_print", etc ? I've
> searched everywhere but can't find any explanation about their use.
> 
> Thanks,
> 
> Justin

-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#9034): https://lists.fd.io/g/vpp-dev/message/9034
View All Messages In Topic (2): https://lists.fd.io/g/vpp-dev/topic/17656579
Mute This Topic: https://lists.fd.io/mt/17656579/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-



[vpp-dev] Plugin API grammar

2018-04-19 Thread Justin Iurman
Hi folks,

After having developed a new plugin, I'm now implementing its API in order to 
use it from a GUI.

Is there an official documentation of the API grammar (other than inside 
vppapigen) ? By looking at the code, I already found that it's possible to 
include a structure in a request/response. Which is good because I'll need it. 
But what about some keywords like "manual_endian", "manual_print", etc ? I've 
searched everywhere but can't find any explanation about their use.

Thanks,

Justin

-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#9001): https://lists.fd.io/g/vpp-dev/message/9001
View All Messages In Topic (1): https://lists.fd.io/g/vpp-dev/topic/17656579
Mute This Topic: https://lists.fd.io/mt/17656579/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-



Re: [vpp-dev] vppctl exec file (containing own plugin commands)

2017-12-28 Thread Justin Iurman
My bad.

After hours of debugging, I figured it out. One of our plugin unformat function 
was checking for end-of-input, which was not the case when using "exec" 
command. Indeed, "exec" reads each line of the parsed file and put them next to 
each other in the (input) buffer. That's why it was silently denying those 
commands.

Justin

> Hi everyone,
> 
> Just noticed that my file was not executed with "vppctl exec ". 
> Actually,
> it *is* executed, as long as a line doesn't contain a command for my plugin. 
> Is
> "exec" only for some vpp "core" commands, such as "set" ? I already tried the
> alternative solution by calling "vppctl " for each command, but that
> leads to a vpp crash when too much commands are involved (around 1
> commands). That's why I thought about the "exec" solution that seems cleaner.
> 
> Any idea ? Any other solution ? Thanks !
> 
> Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


[vpp-dev] vppctl exec file (containing own plugin commands)

2017-12-21 Thread Justin Iurman
Hi everyone,

Just noticed that my file was not executed with "vppctl exec ". Actually, 
it *is* executed, as long as a line doesn't contain a command for my plugin. Is 
"exec" only for some vpp "core" commands, such as "set" ? I already tried the 
alternative solution by calling "vppctl " for each command, but that 
leads to a vpp crash when too much commands are involved (around 1 
commands). That's why I thought about the "exec" solution that seems cleaner.

Any idea ? Any other solution ? Thanks !

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


Re: [vpp-dev] Measure plugin performances

2017-12-14 Thread Justin Iurman
Hi Ray,

> Suggest adding vpphost and iperfvpp to different network namespaces.
> All that is happening at the moment is the kernel is recognizing it owns 
> both IPs and bypassing everything.

> You also need to add vppiperf and vppout to a bridge domain in VPP.

Indeed, I thought that could be an issue. Therefore, I already had an 
alternative using namespaces. Here is what I use to build the topology, with 
bridge domain addition:
  _  _
 | | host-vpp2  | |
 |   VPP   | 10.10.2.1 vpp2 namespace---|  veth_vpp2  |
 |_||  10.10.2.2  |
  | |_|
  host-vpp1
  10.10.1.1
  |
  |
vpp1 namespace
  |
 _|___
| |
|  veth_vpp1  |
|  10.10.1.2  |
|_|

## BEGIN ##
# create namespaces
sudo ip netns add vpp1
sudo ip netns add vpp2

# create and configure first veth pair
sudo ip link add name veth_vpp1 type veth peer name vpp1
sudo ip link set dev vpp1 up
sudo ip link set dev veth_vpp1 up netns vpp1

sudo ip netns exec vpp1 \
  bash -c "
ip link set dev lo up
ip addr add 10.10.1.2/24 dev veth_vpp1
ip route add 10.10.2.0/24 via 10.10.1.1
  "

# create and configure second veth pair
sudo ip link add name veth_vpp2 type veth peer name vpp2
sudo ip link set dev vpp2 up
sudo ip link set dev veth_vpp2 up netns vpp2

sudo ip netns exec vpp2 \
  bash -c "
ip link set dev lo up
ip addr add 10.10.2.2/24 dev veth_vpp2
ip route add 10.10.1.0/24 via 10.10.2.1
  "

# create and configure vpp instance
sudo vpp unix { log /tmp/vpp.log cli-listen /run/vpp/cli-vpp.sock } api-segment 
{ prefix vpp } plugins { plugin dpdk_plugin.so { disable } }
sleep 1

sudo vppctl -s /run/vpp/cli-vpp.sock create host-interface name vpp1
sudo vppctl -s /run/vpp/cli-vpp.sock create host-interface name vpp2
sudo vppctl -s /run/vpp/cli-vpp.sock set int state host-vpp1 up
sudo vppctl -s /run/vpp/cli-vpp.sock set int state host-vpp2 up
sudo vppctl -s /run/vpp/cli-vpp.sock set int ip address host-vpp1 10.10.1.1/24
sudo vppctl -s /run/vpp/cli-vpp.sock set int ip address host-vpp2 10.10.2.1/24

# vpp bridge domain
sudo vppctl -s /run/vpp/cli-vpp.sock set interface l2 bridge host-vpp1 1
sudo vppctl -s /run/vpp/cli-vpp.sock set interface l2 bridge host-vpp2 1
## END ##

Without the bridge domain, I'm able to ping from vpp1 to vpp2 namespaces and 
vice versa and see packets in VPP instance:
sudo ip netns exec vpp1 ping 10.10.2.2 -c 5
sudo ip netns exec vpp2 ping 10.10.1.2 -c 5

However, iperf3 client seems to hang and never returns a result, even if 
"vppctl show run" tells me packets went through VPP. Still don't know why:
sudo ip netns exec vpp2 iperf3 -s -D
sudo ip netns exec vpp1 iperf3 -c 10.10.2.2

With bridge domain, pings don't work anymore. Are you absolutely sure I need it 
? It is not used in the VPP example when connecting two instances.

> Take a look at VPP bootstrap in vppsb, it does 98% of what you are 
> trying to do here.

> https://git.fd.io/vppsb/tree/vpp-bootstrap

Thanks for that but I'm not sure I need this since I already build my own vpp 
"box" environment. What's wrong with my topology/configuration ? All I want is 
to pass packets from vpp1 namespace to vpp2 namespace, and the opposite too (by 
using iperf3). Packets have to go through my VPP instance. Thanks for your help 
!

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


Re: [vpp-dev] Measure plugin performances

2017-12-11 Thread Justin Iurman
Oh and by the way, when I say "Pings work" I mean "pings on vpp interfaces" and 
that's the only way I can see packets in VPP (which is normal after all). But 
still, pings to 10.10.2.2 work but no trace in VPP (same as iperf packets). 
Just wanted to clarify this, because it was a bit unclear.

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


[vpp-dev] Measure plugin performances

2017-12-11 Thread Justin Iurman
Hi everyone,

Just wanted to know if there is already something inside VPP to measure some 
metrics when testing performances of our own plugin ? I know there are some 
useful info with "vppctl show ..." but is it enough/all ?

Actually, based on this link ( 
https://wiki.fd.io/view/VPP/Progressive_VPP_Tutorial#Exercise:_Connecting_two_vpp_instances
 ), I was trying to reproduce the almost-the-same topology combined with iperf. 
Here is how it looks like (hope format doesn't get scratched here):
  _   __
 | |host-vppiperf   iperfvpp |  |
 |   VPP   |--- 10.10.2.1/24 --- 10.10.2.2/24 ---|  SERVER  |
 |_| |__|
  |
  host-vppout
 10.10.1.2/24
  |
  |
  |
vpphost (CLIENT)
 10.10.1.1/24

And here is the VPP-topology-building procedure:

## BEGIN ##
## create vpp and connect it to host
sudo vpp unix { log /tmp/vpp.log cli-listen /run/vpp/cli-vpp.sock } api-segment 
{ prefix vpp } plugins { plugin dpdk_plugin.so { disable } }

# veth interface between host and vpp
sudo ip link add name vppout type veth peer name vpphost
sudo ip link set dev vppout up
sudo ip link set dev vpphost up
sudo ip addr add 10.10.1.1/24 dev vpphost

# host interface between host and vpp
sudo vppctl -s /run/vpp/cli-vpp.sock create host-interface name vppout
sudo vppctl -s /run/vpp/cli-vpp.sock set int state host-vppout up
sudo vppctl -s /run/vpp/cli-vpp.sock set int ip address host-vppout 10.10.1.2/24

## create iperf server and connect it to vpp
sudo ip link add name vppiperf type veth peer name iperfvpp
sudo ip link set dev vppiperf up
sudo ip link set dev iperfvpp up
sudo ip addr add 10.10.2.2/24 dev iperfvpp

sudo vppctl -s /run/vpp/cli-vpp.sock create host-interface name vppiperf
sudo vppctl -s /run/vpp/cli-vpp.sock set int state host-vppiperf up
sudo vppctl -s /run/vpp/cli-vpp.sock set int ip address host-vppiperf 
10.10.2.1/24

#disabled
#sudo ip route add 10.10.2.0/24 via 10.10.1.2
#sudo ip route add 10.10.1.0/24 via 10.10.2.1
## END ##

When running iperf:

# server bound to iperfvpp (10.10.2.2)
iperf3 -s -B 10.10.2.2 -D
# client
iperf3 -c 10.10.2.2 -B 10.10.1.1 -u -4 -k 10

It works but there is no trace of those packets inside VPP. Note: pings work 
and I'm able to see them inside VPP. What am I missing ? I think I can guess 
what the problem is but still don't know how to solve it. Any tips/help ? 
Thanks !

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


Re: [vpp-dev] TCP Options: tcp_header_t and tcp_options_t

2017-11-22 Thread Justin Iurman
Florin,

> For discarding options you’ll probably need to write your own function that
> first recomputes them and then moves the payload closer to the header.

Yep, that's what I had in mind.

> tcp_buffer_discard_bytes just chops off payload bytes, as in moves the 
> buffer’s
> current_data pointer. I don’t think it’s enough for what you need.

Indeed, it's not enough.

> Quick note, for completeness: If you’re planning on discarding all headers up 
> to
> tcp, the other option would be to move the tcp header forward, since it’s
> typically smaller than the payload.

I don't. Actually, the goal is only to strip off some tcp options that match 
against some rules.

Thanks,

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Re: [vpp-dev] TCP Options: tcp_header_t and tcp_options_t

2017-11-20 Thread Justin Iurman
Hi Florin,

Sorry for the late response. In fact, you just confirmed what I expected, thank 
you. I'll go with my own parser to include all options (even the reserved 
ones), inspired by tcp_options_parse. I'll go with my own rewriter too, 
inspired by tcp_options_write. 

But, what about discarded options (the ones I just want to remove) ? How would 
you free/allocate/resize the buffer containing data (..., ip header, tcp 
header, payload...) ? I just found a function called tcp_buffer_discard_bytes 
but I'm not sure it's what I really need. I'm looking for the cleanest vpp-way 
to do this.

Thanks for your help !

Justin

> Hi Justin,
> 
> The expectation until now has been that options are not parsed until hitting 
> the
> tcp related nodes. If tcp_options_parse is enough, then make it public and use
> it.  That function just expects a tcp_options_t struct for outputting the
> results so no need for a tcp_connection_t. Now, if you need your special
> function to both read, match and update in place the options, then I recommend
> you write your own options parser.
> 
> Hope this helps,
> Florin
> 
>> On Nov 14, 2017, at 5:13 AM, Justin Iurman  wrote:
>> 
>> Hi Dave,
>> 
>> Thanks (again) for your reply.
>> 
>>> Brief commercial: hopefully you added your node to the ip4 unicast feature 
>>> arc,
>>> configured to grab pkts, pre-ip4/6-lookup.
>> 
>> Indeed, I added my node to the ip4-unicast feature arc.
>> 
>>> In feature-arc land, the following one-liner sets next0 so pkts will visit 
>>> the
>>> next enabled feature. The last node in the ip4-unicast feature arc is
>>> ip4-lookup...
>>> 
>>> /* Next node in unicast feature arc */
>>>   vnet_get_config_data (em->config_main[table_index],
>>> &b0->current_config_index, &next0,
>>> /* # bytes of config data */ 0);
>>> 
>>> Check the ip protocol and ignore any non-TCP pkts:
>>> 
>>> ip40 = vlib_buffer_get_current (b0);
>>> if (ip40->protocol != IP_PROTOCOL_TCP)
>>>   goto trace0;
>>> 
>>> Then use ip4_next_header() to find the tcp layer, etc. etc.
>> 
>> Actually, I'm already able to access L3 and L4 structures. But, when I have 
>> the
>> following, for instance:
>> 
>> ip40 = vlib_buffer_get_current (b0);
>> if (ip40->protocol == IP_PROTOCOL_TCP)
>> {
>>  tcp_header_t *tcp = ip4_next_header(ip40);
>>  // where are options (tcp_options_t) ?
>> }
>> 
>> How am I able to access TCP options for each packet ? I mean, I could 
>> directly
>> parse them by moving the data pointer but I've also seen a function called
>> tcp_options_parse (see my previous email) that already does this job. How 
>> would
>> you proceed to do this ? The expected behavior is to match some options and
>> strip them.
>> 
>> Thanks,
>> 
>> Justin
>> ___
>> vpp-dev mailing list
>> vpp-dev@lists.fd.io
> > https://lists.fd.io/mailman/listinfo/vpp-dev
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


Re: [vpp-dev] TCP Options: tcp_header_t and tcp_options_t

2017-11-14 Thread Justin Iurman
Hi Dave,

Thanks (again) for your reply.

> Brief commercial: hopefully you added your node to the ip4 unicast feature 
> arc,
> configured to grab pkts, pre-ip4/6-lookup.

Indeed, I added my node to the ip4-unicast feature arc.

> In feature-arc land, the following one-liner sets next0 so pkts will visit the
> next enabled feature. The last node in the ip4-unicast feature arc is
> ip4-lookup...
> 
>  /* Next node in unicast feature arc */
> vnet_get_config_data (em->config_main[table_index],
>   &b0->current_config_index, &next0,
>   /* # bytes of config data */ 0);
> 
> Check the ip protocol and ignore any non-TCP pkts:
> 
>  ip40 = vlib_buffer_get_current (b0);
>  if (ip40->protocol != IP_PROTOCOL_TCP)
>goto trace0;
> 
> Then use ip4_next_header() to find the tcp layer, etc. etc.

Actually, I'm already able to access L3 and L4 structures. But, when I have the 
following, for instance:

ip40 = vlib_buffer_get_current (b0);
if (ip40->protocol == IP_PROTOCOL_TCP)
{
  tcp_header_t *tcp = ip4_next_header(ip40);
  // where are options (tcp_options_t) ?
}

How am I able to access TCP options for each packet ? I mean, I could directly 
parse them by moving the data pointer but I've also seen a function called 
tcp_options_parse (see my previous email) that already does this job. How would 
you proceed to do this ? The expected behavior is to match some options and 
strip them.

Thanks,

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


[vpp-dev] TCP Options: tcp_header_t and tcp_options_t

2017-11-13 Thread Justin Iurman
Guys,

My node is located right before ip4_lookup. What's the fastest/cleanest way to 
get options related to a TCP packet, having access to a tcp_header_t structure 
(which is not directly linked to its options) ? Actually, I'd like to modify or 
remove some options on the fly. 

Do I have to call tcp_options_parse function from src/vnet/tcp/tcp_input.c ? 
But I guess it would duplicate the job, since it is already called at one 
moment. 

Or should I get the TCP connection, which connects both tcp_header_t and 
tcp_options_t ? Or should I directly modify options "in" the packet, by moving 
the data pointer (a sort-of copy of what tcp_options_parse already does) ?

Thanks for your help !

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


[vpp-dev] Packet Generator for TCP traffic

2017-11-13 Thread Justin Iurman
Guys,

I'm facing the same problem as explained by someone else in this thread ( 
https://lists.fd.io/pipermail/vpp-dev/2016-June/001445.html ) which is not 
solved. 

Actually, I'm just trying to generate some TCP traffic and it "works" by 
removing "TCP: sport -> dport" and "SYN" lines. Well... by it "works" I mean it 
almost works. As mentioned in the thread, checksums are wrong. I deeply 
investigated src/vnet/tcp/tcp_pg.c and more precisely unformat_pg_tcp_header 
function. Looking at the code, it seems that both "SYN" and "TCP: sport -> 
dport" should be accepted, while "TCP saddr -> daddr" shouldn't (can't see any 
unformat for it in there). I thought it would work the same way as UDP, which 
seems to be the case or at least the expected behavior.

What am I missing here ? The source code I'm looking at is the 17.10 version, 
while I'm running my test from binaries (v17.10-rc2~14-g116af21~b44).

Thanks !

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


Re: [vpp-dev] vlib_validate_buffer_enqueue

2017-11-13 Thread Justin Iurman
Dave,

Thanks for your (deep) explanation. Same for Chris, thank you :-)

Justin

> Dear Justin,
> 
> Quad-loops are generally not effective for table-lookup-intensive tasks. At a
> certain point, gcc runs out of registers and starts putting hot variables onto
> the stack. I've converted a number of dual loops into quad loops, only to
> discover that they're no faster than the dual loop version.
> 
> Rather than having the sample plugin propagate a bunch of "fetch me a rock"
> coding work, I went with a dual-single loop. When doing new development, I 
> shut
> off the dual loop, make the single loop work, then build the dual (or quad)
> loop.
> 
> With experience, building a dual (or quad) loop becomes a mechanical exercise
> easily done during a boring meeting. (😉)...
> 
> In viable quad-loop use-cases, it's not worth any performance to also provide 
> a
> dual loop. The dual-loop code will run at most one time; there's no chance of
> fixed overhead amortization.
> 
> Thanks… Dave
> 
> -Original Message-----
> From: vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io] On 
> Behalf
> Of Justin Iurman
> Sent: Monday, November 13, 2017 5:51 AM
> To: vpp-dev 
> Subject: [vpp-dev] vlib_validate_buffer_enqueue
> 
> Hey guys,
> 
> In buffer_node.h, there are the following macros:
> - vlib_validate_buffer_enqueue_x1
> - vlib_validate_buffer_enqueue_x2
> - vlib_validate_buffer_enqueue_x4
> 
> In a node, I was just wondering what was the use idea behind that ? Is it for 
> a
> reason of speed ? I mean, you're obviously faster if you process 4 packets
> horizontally than one after the other. Why then, in the sample plugin, is the
> "x4" version not used ? A "perfect" plugin would use each of them to cover 
> each
> case, right ? Also, why not having a "x8" (or more) version ? I guess it's
> either for a performance issue or to stop at a specific ceiling.
> 
> Thanks !
> 
> Justin
> ___
> vpp-dev mailing list
> vpp-dev@lists.fd.io
> https://lists.fd.io/mailman/listinfo/vpp-dev
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

[vpp-dev] vlib_validate_buffer_enqueue

2017-11-13 Thread Justin Iurman
Hey guys,

In buffer_node.h, there are the following macros:
- vlib_validate_buffer_enqueue_x1
- vlib_validate_buffer_enqueue_x2
- vlib_validate_buffer_enqueue_x4

In a node, I was just wondering what was the use idea behind that ? Is it for a 
reason of speed ? I mean, you're obviously faster if you process 4 packets 
horizontally than one after the other. Why then, in the sample plugin, is the 
"x4" version not used ? A "perfect" plugin would use each of them to cover each 
case, right ? Also, why not having a "x8" (or more) version ? I guess it's 
either for a performance issue or to stop at a specific ceiling.

Thanks !

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


Re: [vpp-dev] bug/issue notification

2017-10-17 Thread Justin Iurman
Dave,

Thanks for that, I didn't know install.sh was deprecated. What about build.sh ? 
They both seem to be included for execution in VagrantFile.

Anyway, if I follow the link you gave me, where should I start from ? If I 
start with "Build a VPP Package" section, isn't it a duplicate since, I think, 
the build process (build.sh) is executed during "vagrant up" ? Indeed, all deb 
packages are already built in /vpp/build-root/ when I logged into it with 
"vagrant ssh". So, my guess was to directly start with "Install a VPP Package" 
section, which is actually what is executed with the now-deprecated install.sh.

What should I do ?

Justin

- Mail original -
De: "Dave Wallace" 
À: "Justin Iurman" , "vpp-dev" 
Envoyé: Lundi 16 Octobre 2017 16:06:11
Objet: Re: [vpp-dev] bug/issue notification

Justin,

install.sh has not been used for many releases and should probably just 
be removed as it has not been maintained with the updating of the packaging.

In order to install VPP in the VM, just follow the recipe in
https://wiki.fd.io/view/VPP/Build,_install,_and_test_images

Thanks,
-daw-

On 10/16/2017 07:56 AM, Justin Iurman wrote:
> Hey guys,
>
> Here are two issues I faced while installing/running VPP. It would be great 
> to fix them.
>
> 1) Install not executed (at least, it seems that it's the case...) - tested 
> with current version 18.01 (cloned today) but it's the same with previous 
> versions too.
>
> git clone https://gerrit.fd.io/r/vpp
> cd vpp/build-root/vagrant
> vagrant up
>
> **waiting during the installation of the VM**
> Note: install.sh does not seem to be executed during this process (can't see 
> related outputs).
>
> In the VM when logged in with vagrant ssh:
>
> vvp <-- not found
> cd /vpp/build-root/vagrant
> ./install.sh <- Permission denied
>
> First problem: need to manually chmod +x install.sh (maybe that's the reason 
> why ?).
>
> Then, execute it again. It finishes but tells me there is a dependency error 
> (second problem): package python-cffi is not installed. To manually fix it, I 
> do the following:
>
> sudo apt-get install python-cffi
> sudo apt-get -f install
>
> After that, install goes fine. Also, note that I've a plugin where a 
> reference to "vlibsocket/api.h" needs to be removed from plugin.c and 
> plugin_test.c in order to compile (removed/moved in this new version of VPP 
> ?).
>
> 2) This bug seems to be gone since last week with vpp 18.01 (cloned today: 
> Monday 16 October 2017). But I'll mention it, just in case you didn't hear 
> about it. When running: "sudo vppctl -s /run/vpp/cli-vpp1.sock create 
> host-interface name vpp1out", an error was returned (sorry, I don't remember 
> exactly what was said). And this error was not in earlier versions (around 
> the 25 September 2017 I'd say).
>
> Thanks !
>
> Justin
> ___
> vpp-dev mailing list
> vpp-dev@lists.fd.io
> https://lists.fd.io/mailman/listinfo/vpp-dev
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

[vpp-dev] bug/issue notification

2017-10-16 Thread Justin Iurman
Hey guys,

Here are two issues I faced while installing/running VPP. It would be great to 
fix them.

1) Install not executed (at least, it seems that it's the case...) - tested 
with current version 18.01 (cloned today) but it's the same with previous 
versions too.

git clone https://gerrit.fd.io/r/vpp
cd vpp/build-root/vagrant
vagrant up

**waiting during the installation of the VM**
Note: install.sh does not seem to be executed during this process (can't see 
related outputs).

In the VM when logged in with vagrant ssh:

vvp <-- not found
cd /vpp/build-root/vagrant
./install.sh <- Permission denied

First problem: need to manually chmod +x install.sh (maybe that's the reason 
why ?).

Then, execute it again. It finishes but tells me there is a dependency error 
(second problem): package python-cffi is not installed. To manually fix it, I 
do the following:

sudo apt-get install python-cffi
sudo apt-get -f install

After that, install goes fine. Also, note that I've a plugin where a reference 
to "vlibsocket/api.h" needs to be removed from plugin.c and plugin_test.c in 
order to compile (removed/moved in this new version of VPP ?).

2) This bug seems to be gone since last week with vpp 18.01 (cloned today: 
Monday 16 October 2017). But I'll mention it, just in case you didn't hear 
about it. When running: "sudo vppctl -s /run/vpp/cli-vpp1.sock create 
host-interface name vpp1out", an error was returned (sorry, I don't remember 
exactly what was said). And this error was not in earlier versions (around the 
25 September 2017 I'd say).

Thanks !

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


Re: [vpp-dev] Build/Install new plugin without rebuilding everything

2017-10-11 Thread Justin Iurman
Thank you very much Damjan, it works like a charm.

Justin

- Mail original -
De: "Damjan Marion" 
À: "Justin Iurman" 
Cc: "vpp-dev" 
Envoyé: Mardi 10 Octobre 2017 18:36:47
Objet: Re: [vpp-dev] Build/Install new plugin without rebuilding everything

> On 10 Oct 2017, at 18:12, Justin Iurman  wrote:
> 
> Hi folks,
> 
> I was just wondering how I could build my own plugin without rebuilding 
> everything from scratch in vpp ? I mean, here are two ways I found to build a 
> plugin:
> - First technique (long, rebuilds everything): 
> https://docs.fd.io/vpp/17.07/sample_plugin_doc.html
> - Second technique (fast, only builds what needs to be, "sample-plugin" 
> specific): https://wiki.fd.io/view/VPP/Tutorial_DPDK_and_MacSwap#Compilation
> 
> What's the difference between the two ? Is one of the two obsolete, not 
> appropriate in that case ? I just don't get it, as it looks like there are 
> two different notions of plugins.
> 
> I don't like the first one because it rebuilds everything and it takes ages.
> 
> I'd like to use the second one, if possible. For that, I've added a file 
> called "myown-plugin.mk" in "build-data/packages" with equivalent (but 
> modified for that specific case) content as "sample-plugin.mk". Anyway, it 
> doesn't work when running "make V=0 PLATFORM=vpp TAG=vpp 
> myown-plugin-install", as I receive everytime an error. It says that it can't 
> find "myown-plugin" source in "/vpp". Which is weird because I've exactly the 
> same "myown" files (everywhere) as "sample-plugin".
> 
> What am I missing here ? Thanks !

Sample-plugin is exactly the sample of external VPP plugin which can be 
compiled separately of VPP.
Just copy the files to your location and do usual “autoreconf -fis ; 
./configure; make” sequence.

Before doing that you need to install vpp-dev development package which will 
install required headers….
-- 
Justin Iurman
Université de Liège (ULg)
Bât. B28  Algorithmique des Grands Systèmes
Quartier Polytech 1
Allée de la Découverte 10
4000 Liège
Phone: +32 4 366 28 09
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

[vpp-dev] Build/Install new plugin without rebuilding everything

2017-10-10 Thread Justin Iurman
Hi folks,

I was just wondering how I could build my own plugin without rebuilding 
everything from scratch in vpp ? I mean, here are two ways I found to build a 
plugin:
- First technique (long, rebuilds everything): 
https://docs.fd.io/vpp/17.07/sample_plugin_doc.html
- Second technique (fast, only builds what needs to be, "sample-plugin" 
specific): https://wiki.fd.io/view/VPP/Tutorial_DPDK_and_MacSwap#Compilation

What's the difference between the two ? Is one of the two obsolete, not 
appropriate in that case ? I just don't get it, as it looks like there are two 
different notions of plugins.

I don't like the first one because it rebuilds everything and it takes ages.

I'd like to use the second one, if possible. For that, I've added a file called 
"myown-plugin.mk" in "build-data/packages" with equivalent (but modified for 
that specific case) content as "sample-plugin.mk". Anyway, it doesn't work when 
running "make V=0 PLATFORM=vpp TAG=vpp myown-plugin-install", as I receive 
everytime an error. It says that it can't find "myown-plugin" source in "/vpp". 
Which is weird because I've exactly the same "myown" files (everywhere) as 
"sample-plugin".

What am I missing here ? Thanks !

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


Re: [vpp-dev] Running multiple instances of VPP as it was allowed with VPP-lite

2017-10-06 Thread Justin Iurman
Ed,

Thanks for the update and your good advice. I appreciate it.

Justin

- Mail original -
De: "Ed Warnicke" 
À: "Justin Iurman" 
Cc: "vpp-dev" 
Envoyé: Jeudi 5 Octobre 2017 23:53:17
Objet: Re: [vpp-dev] Running multiple instances of VPP as it was allowed with 
VPP-lite

If you want to take it to the next level, and do a great service to your
fellow man, I would encourage you to update the tutorial to use:

https://docs.fd.io/vpp/17.10/clicmd_src_plugins_memif.html

to interconnect the various vpp instances :)

Ed

On Thu, Oct 5, 2017 at 2:50 PM, Ed Warnicke  wrote:

> Justin,
>
> I've fixed the tutorial in this area:
>
> https://wiki.fd.io/view/VPP/Progressive_VPP_Tutorial
>
> Here's the net net.  Damjan improved the vppctl, rewriting it in C, and
> having it talk over a file socket to vpp.  This is goodness.  It does mean
> you do the multi-vpp instance thing a bit differently though:
>
> sudo vpp unix {cli-listen /run/vpp/cli-vpp1.sock} api-segment { prefix
> vpp1 }
>
> sudo vppctl -s /run/vpp/cli-vpp1.sock
>
> Thanks for asking, it prompted me to fix the tutorial :)
>
> Ed
>
> On Wed, Oct 4, 2017 at 9:23 AM, Justin Iurman 
> wrote:
>
>> Hi all,
>>
>> Is it still possible to run multiple instances of VPP, just like it was
>> done with VPP-lite (see here: https://wiki.fd.io/view/VPP/Pr
>> ogressive_VPP_Tutorial) before merging it ?
>>
>> Actually, my problem is the following. I need to run several instances of
>> VPP (eg. vpp1, vpp2, vpp3, etc) to simulate a topology. But, for some
>> reason, I'm not able to make it work as expected. I've already disabled
>> DPDK plugin to run in "lite" mode. Could it be a configuration issue ? VPP
>> startup.conf:
>>
>> unix {
>>   nodaemon
>>   log /tmp/vpp.log
>>   full-coredump
>>   cli-listen /run/vpp/cli.sock
>>   gid vpp
>> }
>>
>> api-trace {
>>   on
>> }
>>
>> api-segment {
>>   gid vpp
>> }
>>
>> plugins {
>>   plugin dpdk_plugin.so { disable }
>> }
>>
>> I tried to compare both VPP and VPP-lite. A first observation showed that
>> VPP is installed as a service, which is not the case for VPP-lite. I've
>> also compared both config files. Here is VPP-lite startup.conf:
>>
>> unix {
>>   nodaemon
>>   log /tmp/vpp.log
>>   full-coredump
>> }
>>
>> api-trace {
>>   on
>> }
>>
>> api-segment {
>>   gid vpp
>> }
>>
>> Currently, here is how I try to mimic VPP-lite behavior with VPP:
>>
>> sudo vpp api-segment { prefix vpp1 } unix { cli-listen
>> /run/vpp/cli.vpp1.sock }
>> sudo vppctl -s /run/vpp/cli.vpp1.sock
>>
>> It works for one instance, but not for more, even if it does not throw
>> any error. Do you have any idea on how to proceed or what is wrong here ?
>>
>> Thanks !
>>
>> Justin
>> ___
>> vpp-dev mailing list
>> vpp-dev@lists.fd.io
>> https://lists.fd.io/mailman/listinfo/vpp-dev
>>
>
>
-- 
Justin Iurman
Université de Liège (ULg)
Bât. B28  Algorithmique des Grands Systèmes
Quartier Polytech 1
Allée de la Découverte 10
4000 Liège
Phone: +32 4 366 28 09
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Re: [vpp-dev] Running multiple instances of VPP as it was allowed with VPP-lite

2017-10-05 Thread Justin Iurman
Florin,

Thanks for that. What's the difference between my technique and yours using 
telnet ? Also, what does the 0 correspond to ? Is it an instance index or 
something else ?

Justin

> Le 5 oct. 2017 à 17:23, Florin Coras  a écrit :
> 
> Justin, 
> 
> That looks about right. The other option would be to use telnet. So instead 
> of 
> “cli-listen /run/vpp/cli.vpp1.sock” do something like “cli-listen 
> localhost:5002” and then telnet 0 5002
> 
> Florin
> 
>> On Oct 5, 2017, at 1:18 AM, Justin Iurman  wrote:
>> 
>> Hi Florin,
>> 
>> In fact, that's what I was already trying. Anyway, I found a way to make it 
>> work but I'm still not sure that's the right/best way to do so.
>> 
>> # vpp1 instance
>> sudo vpp unix { log /tmp/vpp1.log full-coredump cli-listen 
>> /run/vpp/cli.vpp1.sock } api-segment { prefix vpp1 } api-trace { on } 
>> plugins { plugin dpdk_plugin.so { disable } }
>> 
>> # vpp2 instance
>> sudo vpp unix { log /tmp/vpp2.log full-coredump cli-listen 
>> /run/vpp/cli.vpp2.sock } api-segment { prefix vpp2 } api-trace { on } 
>> plugins { plugin dpdk_plugin.so { disable } }
>> 
>> # vppctl vpp1
>> sudo vppctl -s /run/vpp/cli.vpp1.sock 
>> 
>> # vppctl vpp2
>> sudo vppctl -s /run/vpp/cli.vpp2.sock 
>> 
>> Since I build a dynamic topology, I won't use startup config files. That's 
>> why i'm using parameters in command line. Commands above work good, as it 
>> mimics the behavior I had with VPP-lite. But again, is it the right/best way 
>> to do so ? Or would there be anything better suited ?
>> 
>> Justin
>> 
>> - Mail original -
>> De: "Florin Coras" 
>> À: "Justin Iurman" 
>> Cc: vpp-dev@lists.fd.io
>> Envoyé: Mercredi 4 Octobre 2017 18:32:27
>> Objet: Re: [vpp-dev] Running multiple instances of VPP as it was allowed 
>> with VPP-lite
>> 
>> Hi Justin, 
>> 
>> Try api-segment {prefix }
>> 
>> Florin
>> 
>>> On Oct 4, 2017, at 9:23 AM, Justin Iurman  wrote:
>>> 
>>> Hi all,
>>> 
>>> Is it still possible to run multiple instances of VPP, just like it was 
>>> done with VPP-lite (see here: 
>>> https://wiki.fd.io/view/VPP/Progressive_VPP_Tutorial) before merging it ?
>>> 
>>> Actually, my problem is the following. I need to run several instances of 
>>> VPP (eg. vpp1, vpp2, vpp3, etc) to simulate a topology. But, for some 
>>> reason, I'm not able to make it work as expected. I've already disabled 
>>> DPDK plugin to run in "lite" mode. Could it be a configuration issue ? VPP 
>>> startup.conf:
>>> 
>>> unix {
>>> nodaemon
>>> log /tmp/vpp.log
>>> full-coredump
>>> cli-listen /run/vpp/cli.sock
>>> gid vpp
>>> }
>>> 
>>> api-trace {
>>> on
>>> }
>>> 
>>> api-segment {
>>> gid vpp
>>> }
>>> 
>>> plugins {
>>> plugin dpdk_plugin.so { disable }
>>> }
>>> 
>>> I tried to compare both VPP and VPP-lite. A first observation showed that 
>>> VPP is installed as a service, which is not the case for VPP-lite. I've 
>>> also compared both config files. Here is VPP-lite startup.conf:
>>> 
>>> unix {
>>> nodaemon
>>> log /tmp/vpp.log
>>> full-coredump
>>> }
>>> 
>>> api-trace {
>>> on
>>> }
>>> 
>>> api-segment {
>>> gid vpp
>>> }
>>> 
>>> Currently, here is how I try to mimic VPP-lite behavior with VPP:
>>> 
>>> sudo vpp api-segment { prefix vpp1 } unix { cli-listen 
>>> /run/vpp/cli.vpp1.sock }
>>> sudo vppctl -s /run/vpp/cli.vpp1.sock
>>> 
>>> It works for one instance, but not for more, even if it does not throw any 
>>> error. Do you have any idea on how to proceed or what is wrong here ?
>>> 
>>> Thanks !
>>> 
>>> Justin
>>> ___
>>> vpp-dev mailing list
>>> vpp-dev@lists.fd.io
>>> https://lists.fd.io/mailman/listinfo/vpp-dev
> 

___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Re: [vpp-dev] Running multiple instances of VPP as it was allowed with VPP-lite

2017-10-05 Thread Justin Iurman
Hi Florin,

In fact, that's what I was already trying. Anyway, I found a way to make it 
work but I'm still not sure that's the right/best way to do so.

# vpp1 instance
sudo vpp unix { log /tmp/vpp1.log full-coredump cli-listen 
/run/vpp/cli.vpp1.sock } api-segment { prefix vpp1 } api-trace { on } plugins { 
plugin dpdk_plugin.so { disable } }

# vpp2 instance
sudo vpp unix { log /tmp/vpp2.log full-coredump cli-listen 
/run/vpp/cli.vpp2.sock } api-segment { prefix vpp2 } api-trace { on } plugins { 
plugin dpdk_plugin.so { disable } }

# vppctl vpp1
sudo vppctl -s /run/vpp/cli.vpp1.sock 

# vppctl vpp2
sudo vppctl -s /run/vpp/cli.vpp2.sock 

Since I build a dynamic topology, I won't use startup config files. That's why 
i'm using parameters in command line. Commands above work good, as it mimics 
the behavior I had with VPP-lite. But again, is it the right/best way to do so 
? Or would there be anything better suited ?

Justin

- Mail original -
De: "Florin Coras" 
À: "Justin Iurman" 
Cc: vpp-dev@lists.fd.io
Envoyé: Mercredi 4 Octobre 2017 18:32:27
Objet: Re: [vpp-dev] Running multiple instances of VPP as it was allowed with 
VPP-lite

Hi Justin, 

Try api-segment {prefix }

Florin

> On Oct 4, 2017, at 9:23 AM, Justin Iurman  wrote:
> 
> Hi all,
> 
> Is it still possible to run multiple instances of VPP, just like it was done 
> with VPP-lite (see here: 
> https://wiki.fd.io/view/VPP/Progressive_VPP_Tutorial) before merging it ?
> 
> Actually, my problem is the following. I need to run several instances of VPP 
> (eg. vpp1, vpp2, vpp3, etc) to simulate a topology. But, for some reason, I'm 
> not able to make it work as expected. I've already disabled DPDK plugin to 
> run in "lite" mode. Could it be a configuration issue ? VPP startup.conf:
> 
> unix {
>  nodaemon
>  log /tmp/vpp.log
>  full-coredump
>  cli-listen /run/vpp/cli.sock
>  gid vpp
> }
> 
> api-trace {
>  on
> }
> 
> api-segment {
>  gid vpp
> }
> 
> plugins {
>  plugin dpdk_plugin.so { disable }
> }
> 
> I tried to compare both VPP and VPP-lite. A first observation showed that VPP 
> is installed as a service, which is not the case for VPP-lite. I've also 
> compared both config files. Here is VPP-lite startup.conf:
> 
> unix {
>  nodaemon
>  log /tmp/vpp.log
>  full-coredump
> }
> 
> api-trace {
>  on
> }
> 
> api-segment {
>  gid vpp
> }
> 
> Currently, here is how I try to mimic VPP-lite behavior with VPP:
> 
> sudo vpp api-segment { prefix vpp1 } unix { cli-listen /run/vpp/cli.vpp1.sock 
> }
> sudo vppctl -s /run/vpp/cli.vpp1.sock
> 
> It works for one instance, but not for more, even if it does not throw any 
> error. Do you have any idea on how to proceed or what is wrong here ?
> 
> Thanks !
> 
> Justin
> ___
> vpp-dev mailing list
> vpp-dev@lists.fd.io
> https://lists.fd.io/mailman/listinfo/vpp-dev
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

[vpp-dev] Running multiple instances of VPP as it was allowed with VPP-lite

2017-10-04 Thread Justin Iurman
Hi all,

Is it still possible to run multiple instances of VPP, just like it was done 
with VPP-lite (see here: https://wiki.fd.io/view/VPP/Progressive_VPP_Tutorial) 
before merging it ?

Actually, my problem is the following. I need to run several instances of VPP 
(eg. vpp1, vpp2, vpp3, etc) to simulate a topology. But, for some reason, I'm 
not able to make it work as expected. I've already disabled DPDK plugin to run 
in "lite" mode. Could it be a configuration issue ? VPP startup.conf:

unix {
  nodaemon
  log /tmp/vpp.log
  full-coredump
  cli-listen /run/vpp/cli.sock
  gid vpp
}

api-trace {
  on
}

api-segment {
  gid vpp
}

plugins {
  plugin dpdk_plugin.so { disable }
}

I tried to compare both VPP and VPP-lite. A first observation showed that VPP 
is installed as a service, which is not the case for VPP-lite. I've also 
compared both config files. Here is VPP-lite startup.conf:

unix {
  nodaemon
  log /tmp/vpp.log
  full-coredump
}

api-trace {
  on
}

api-segment {
  gid vpp
}

Currently, here is how I try to mimic VPP-lite behavior with VPP:

sudo vpp api-segment { prefix vpp1 } unix { cli-listen /run/vpp/cli.vpp1.sock }
sudo vppctl -s /run/vpp/cli.vpp1.sock

It works for one instance, but not for more, even if it does not throw any 
error. Do you have any idea on how to proceed or what is wrong here ?

Thanks !

Justin
___
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev