Re: [vpp-dev] VPP memif ping taking ~20ms

2020-03-16 Thread vyshakh krishnan
Thanks Aloys. Setting the main-core to different CPUs helped. ping is
taking less than a ms now.
Is there a way to do it from the code rather than from configuration file?
or a way to let linux scheduling decide the CPU?

Thanks
Vyshakh

On Thu, Mar 12, 2020 at 7:24 PM Aloys Augustin (aloaugus) <
aloau...@cisco.com> wrote:

> Hello,
>
> For what it’s worth, I observed ~10ms memif pings when both VPPs were
> scheduled on the same CPU, which happens with the default configuration
> (VPP takes CPU 1 by default). You can try changing the configuration of one
> of your VPPs by setting the main-core in the cpu section:
> https://fd.io/docs/vpp/master/gettingstarted/users/configuring/startup.html
>
>
> Cheers,
> Aloÿs
>
> On 12 Mar 2020, at 14:30, vyshakh krishnan  wrote:
>
> Hi Damjan,
>
> Please find the trace on both side
>
> vpp1 (10.1.1.1)  (10.1.1.2) vpp2
>
> DBGvpp# ping 10.1.1.2
> 116 bytes from 10.1.1.2: icmp_seq=1 ttl=64 time=31.8174 ms
> 116 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=47.9716 ms
> 116 bytes from 10.1.1.2: icmp_seq=3 ttl=64 time=40.0259 ms
> 116 bytes from 10.1.1.2: icmp_seq=4 ttl=64 time=19.9210 ms
> 116 bytes from 10.1.1.2: icmp_seq=5 ttl=64 time=39.9568 ms
>
> Statistics: 5 sent, 5 received, 0% packet loss
>
>
> VPP1:
> **
>
> Packet 3
>
> 01:35:02:872114: memif-input
>   memif: hw_if_index 1 next-index 4
> slot: ring 0
> 01:35:02:872132: ethernet-input
>   frame: flags 0x1, hw-if-index 1, sw-if-index 1
>   IP4: 02:dc:5c:30:00:00 -> 02:dc:5c:30:00:00
> 01:35:02:872142: ip4-input
>   ICMP: 10.1.1.2 -> 10.1.1.1
> tos 0x00, ttl 64, length 96, checksum 0x36e4
> fragment id 0x2db5
>   ICMP echo_reply checksum 0xf86f
> 01:35:02:872153: ip4-lookup
>   fib 0 dpo-idx 8 flow hash: 0x
>   ICMP: 10.1.1.2 -> 10.1.1.1
> tos 0x00, ttl 64, length 96, checksum 0x36e4
> fragment id 0x2db5
>   ICMP echo_reply checksum 0xf86f
> 01:35:02:872206: ip4-local
> ICMP: 10.1.1.2 -> 10.1.1.1
>   tos 0x00, ttl 64, length 96, checksum 0x36e4
>   fragment id 0x2db5
> ICMP echo_reply checksum 0xf86f
> 01:35:02:872215: ip4-icmp-input
>   ICMP: 10.1.1.2 -> 10.1.1.1
> tos 0x00, ttl 64, length 96, checksum 0x36e4
> fragment id 0x2db5
>   ICMP echo_reply checksum 0xf86f
> 01:35:02:872224: ip4-icmp-echo-reply
>   ICMP4 echo id 50293 seq 1 send to cli node 620
>
> Packet 4
>
> 01:35:02:872114: memif-input
>   memif: hw_if_index 1 next-index 4
> slot: ring 0
> 01:35:02:872132: ethernet-input
>   frame: flags 0x1, hw-if-index 1, sw-if-index 1
>   ARP: 02:dc:5c:30:00:00 -> ff:ff:ff:ff:ff:ff
> 01:35:02:872150: arp-input
>   request, type ethernet/IP4, address size 6/4
>   02:dc:5c:30:00:00/10.1.1.2 -> 00:00:00:00:00:00/10.1.1.1
> 01:35:02:872163: arp-reply
>   request, type ethernet/IP4, address size 6/4
>   02:dc:5c:30:00:00/10.1.1.2 -> 00:00:00:00:00:00/10.1.1.1
> 01:35:02:872219: memif11/11-output
>   memif11/11 l2_hdr_offset_valid l3_hdr_offset_valid
>   ARP: 02:dc:5c:30:00:00 -> 02:dc:5c:30:00:00
>   reply, type ethernet/IP4, address size 6/4
>   02:dc:5c:30:00:00/10.1.1.1 -> 02:dc:5c:30:00:00/10.1.1.2
>
> Packet 5
>
> 01:35:03:136170: memif-input
>   memif: hw_if_index 1 next-index 4
> slot: ring 0
> 01:35:03:136186: ethernet-input
>   frame: flags 0x1, hw-if-index 1, sw-if-index 1
>   IP6: 02:dc:5c:30:00:00 -> 33:33:00:00:00:01
> 01:35:03:136195: ip6-input
>   ICMP6: fe80::dc:5cff:fe30:0 -> ff02::1
> tos 0x00, flow label 0x0, hop limit 255, payload length 32
>   ICMP router_advertisement checksum 0x57bf
> 01:35:03:136201: ip6-mfib-forward-lookup
>   fib 0 entry 4
> 01:35:03:136209: ip6-mfib-forward-rpf
>   entry 4 itf 1 flags Accept,
> 01:35:03:136212: ip6-replicate
>   replicate: 2 via [@1]: dpo-receive
> 01:35:03:136217: ip6-local
> ICMP6: fe80::dc:5cff:fe30:0 -> ff02::1
>   tos 0x00, flow label 0x0, hop limit 255, payload length 32
> ICMP router_advertisement checksum 0x57bf
> 01:35:03:136225: ip6-icmp-input
>   ICMP6: fe80::dc:5cff:fe30:0 -> ff02::1
> tos 0x00, flow label 0x0, hop limit 255, payload length 32
>   ICMP router_advertisement checksum 0x57bf
> 01:35:03:136228: icmp6-router-advertisement
>   ICMP6: fe80::dc:5cff:fe30:0 -> ff02::1
> tos 0x00, flow label 0x0, hop limit 255, payload length 32
>   ICMP router_advertisement checksum 0x57bf
> 01:35:03:136237: ip6-drop
> ICMP6: fe80::dc:5cff:fe30:0 -> ff02::1
>   tos 0x00, flow label 0x0, hop limit 255, payload length 32
> ICMP router_advertisement checksum 0x57bf
> 01:35:03:136242: error-drop
>   rx:memif11/11
> 01:35:03:136246: drop
>   ip6-icmp-input: valid packets
>
> Packet 6
>
> 01:35:03:860055: memif-input
>   memif: hw_if_index 1 next-index 4
> slot: ring 0
> 01:35:03:880103: ethernet-input
>   frame: flags 0x1, hw-if-index 1, sw-if-index 1
>   IP4: 02:dc:5c:30:00:00 -> 02:dc:5c:30:00:00
> 01:35:03:880114: ip4-input
>   ICMP: 10.1.1.2 -> 10.1.1.1
> tos 0x00, ttl 64, length 96, checksum 0xb43f
> fragment id 0xb059
>   ICMP echo_reply 

[vpp-dev] Installing VPP in offline mode (without internet connection)

2020-03-16 Thread Chinmaya Aggarwal
Hi,
We are trying to install VPP in offline mode i.e without internet connection. 
For that, we cloned the VPP github repository ( https://github.com/FDio/vpp ) 
and executed build-root/vagrant/build.sh (this requires internet connection) as 
per the link 
https://wiki.fd.io/view/VPP/Pulling,_Building,_Running,_Hacking_and_Pushing_VPP_Code.
 This generates .deb (for Ubuntu) and .rpm (for Centos) files in 
vpp/build-root. We then tried and execute dpkg -i /vpp/build-root/*.deb and rpm 
-i /vpp/build-root/*.rpm for Ubuntu and Centos respectively (without internet 
connection).
Executing these commands gave following output
a) On Ubuntu : Attached Error_VPP_Installation_Ubuntu
The logs shows error regarding few packages (for ex:- python3-vpp-api and 
vpp-api-python) but still we could see VPP installed and working fine.
b) On Centos : Attached Error_VPP_Installation_Centos
The logs shows few missing dependencies which requires internet connection to 
download. Because of this, VPP is not getting installed on Centos.

Is there anything we are missing on our side? Also, please suggest is there any 
other way by which we can install VPP on a host without internet connection?


Error_VPP_Installation_Centos
Description: Binary data


Error_VPP_Installation_Ubuntu
Description: Binary data
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#15796): https://lists.fd.io/g/vpp-dev/message/15796
Mute This Topic: https://lists.fd.io/mt/72017275/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] VRRP Unit Tests failing on Master Ubuntu

2020-03-16 Thread Dave Wallace

Hi Paul,

Good point.

Do you think it's worth adding an env var for running tests with 
intermittent failures on the LF infra?  In my experience, it is often 
hard to reproduce intermittent failures locally so I'm thinking that in 
may be useful to have a "penalty box" for flaky tests.


Or I can push a patch to just skip the VRRP tests instead of using 
extended tests.


Thanks,
-daw-

On 3/13/2020 1:40 PM, Paul Vinciguerra wrote:


Hi Dave,

Please don't add broken tests to extended tests.

See https://gerrit.fd.io/r/c/vpp/+/24567/12/test/test_bfd.py

Thanks!

On Fri, Mar 13, 2020 at 1:33 PM Dave Wallace > wrote:


Matt,

I will keep an eye on this gerrit and merge it once the verify
jobs have completed.
If there are other tests which fail, are you ok if I add them to
this patch and turn it into a generic 'disable failing tests'
gerrit change?

The other possibility is that this is due to the recent disabling
of the Naginator retry plugin.

I'm going to investigate if this issue may have been masked by
Naginator...

Thanks for your help on keeping the CI operational!
-daw-

On 3/12/2020 12:09 PM, Matthew Smith via Lists.Fd.Io
 wrote:


Change submitted - https://gerrit.fd.io/r/c/vpp/+/25834.
Verification jobs are running. Hopefully they won't fail :)

-Matt


On Thu, Mar 12, 2020 at 10:22 AM Matthew Smith via Lists.Fd.Io
 mailto:netgate@lists.fd.io>> wrote:


I don't have a solution yet, but one observation has popped
up quickly

In the 2 failed jobs Ray sent links for, one of them had a
test fail which was not related to VRRP. There is a BFD6 test
failure for the NAT change https://gerrit.fd.io/r/c/vpp/+/25462:


https://logs.fd.io/production/vex-yul-rot-jenkins-1/vpp-verify-master-ubuntu1804/2678/archives/

Looking back through a couple of recent failed runs of that
job, there is also a DHCP6 PD test failure for rdma change
https://gerrit.fd.io/r/c/vpp/+/25823:


https://logs.fd.io/production/vex-yul-rot-jenkins-1/vpp-verify-master-ubuntu1804/2682/archives/

The most obvious common thread between BFD6, DHCP6 and VRRP
to me seems to be that they all maintain state which is
dependent on timers. There could be a more general issue with
timing-sensitive tests. I am going to submit a change which
will prevent the VRRP tests from running temporarily while I
can figure out a proper solution. Based on the above, other
tests may need the same treatment.

-Matt



On Thu, Mar 12, 2020 at 8:57 AM Matthew Smith
mailto:mgsm...@netgate.com>> wrote:

Hi Ray,

Thanks for bringing it to my attention. I'll look into it.

-Matt


On Thu, Mar 12, 2020 at 8:24 AM Ray Kinsella
mailto:m...@ashroe.eu>> wrote:

Anyone else noticing seeming spurious failures
related to the VRRP plugin's unit tests.
Some examples from un-related commits.

Ray K

nat: timed out session scavenging upgrade
(https://gerrit.fd.io/r/c/vpp/+/25462)

https://logs.fd.io/production/vex-yul-rot-jenkins-1/vpp-verify-master-ubuntu1804/2678/console.log.gz


==
TEST RESULTS:
     Scheduled tests: 1138
      Executed tests: 1138
        Passed tests: 1021
       Skipped tests: 112
            Failures: 3
              Errors: 2
FAILURES AND ERRORS IN TESTS:
  Testcase name: IPv4 VRRP Test Case
    FAILURE: IPv4 Master VR does not reply for VIP w/
accept mode off
[test_vrrp.TestVRRP4.test_vrrp4_accept_mode_disabled]
    FAILURE: IPv4 Master VR preempted by higher
priority backup
[test_vrrp.TestVRRP4.test_vrrp4_master_preempted]
  Testcase name: IPv6 VRRP Test Case
    FAILURE: IPv6 Master VR preempted by higher
priority backup
[test_vrrp.TestVRRP6.test_vrrp6_master_preempted]
      ERROR: IPv6 Backup VR preempts lower priority
master [test_vrrp.TestVRRP6.test_vrrp6_backup_preempts]
  Testcase name: Bidirectional Forwarding Detection
(BFD) (IPv6)
      ERROR: echo function
[test_bfd.BFD6TestCase.test_echo]

==

vlib: startup multi-arch variant configuration

Re: [vpp-dev] how to create a session from thin air?

2020-03-16 Thread Florin Coras
Hi Andreas, 

>From the info lower, I guess that you want to build a transparent tcp 
>terminator/proxy. For that, you’ll be forced to do a) because ip-local path is 
>purely for consuming packets whose destination is local ip addresses. 
>Moreover, you’ll have to properly classify/match all packets to connections 
>and hand them to tcp-input (or better yet tcp-input-nolookup) for tcp 
>processing.

Regarding the passing of data, is that at connection establishment or 
throughout the lifetime of the connection? If the former, your classifier 
together with your builtin app will have to instantiate tcp connections and 
sessions “manually” and properly initialize them whenever it detects a new 
flow. APIs like session_alloc and tcp_connection_alloc are already exposed. 

Regards,
Florin

> On Mar 16, 2020, at 10:39 AM, Andreas Schultz 
>  wrote:
> 
> Hi,
> 
> In our UPF plugin [1], I need to terminate a TCP connection with a non-local 
> destination IP *and* pass metadata from the plugin into the session.
> 
> I have solve this for the moment with some very ugly hacks. Florin Coras has 
> rightly criticise those hacks in earlier version of the plugin, but I have 
> not found a clean solution, yet.
> 
> The UPF plugin is basically a per session mini router instance (that wasn't 
> my idea, that is the way the specifications are written). It detects a TCP 
> connection that it needs to handle with rules that are unique for a given 
> session and then has to apply rules that are also unique per session to that 
> TCP connection. For the moment only HTTP with redirect rules are handled 
> (your normal captive portal use case).
> 
> What I need to do is:
>   a) detect the UPF session and the TCP connection in a packet forwarding 
> graph node and create a TCP session from it. The destination IP will not be 
> local, so the normal local input does not work.
>   b) pass metadata (the matched session and rule) into the TCP connection.
> 
> a) is somewhat doable, but passing metadata from the detection node into the 
> session proves challenging (without reimplementing all of the TCP input 
> node). There are no fields (except for IP headers) that are passed from the 
> vnet buffer into the TCP connection.
> 
> Any hints or ideas?
> 
> Regards,
> Andreas
> 
> 
> [1]: https://gerrit.fd.io/r/c/vpp/+/15798 
> 
> 
> -- 
> Andreas Schultz
> 
> -- 
> 
> Principal Engineer
> 
> t: +49 391 819099-224
> 
> 
> --- enabling your networks 
> -
> 
> Travelping GmbH 
> Roentgenstraße 13
> 39108 Magdeburg
> Germany
> 
> 
> t: +49 391 819099-0
> f: +49 391 819099-299
> 
> e: i...@travelping.com 
> w: https://www.travelping.com/ 
> Company registration: Amtsgericht Stendal 
> Geschaeftsfuehrer: Holger Winkelmann
> Reg. No.: HRB 10578
> VAT ID: DE236673780
> 

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

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


[vpp-dev] how to create a session from thin air?

2020-03-16 Thread Andreas Schultz
Hi,

In our UPF plugin [1], I need to terminate a TCP connection with a
non-local destination IP *and* pass metadata from the plugin into the
session.

I have solve this for the moment with some very ugly hacks. Florin Coras
has rightly criticise those hacks in earlier version of the plugin, but I
have not found a clean solution, yet.

The UPF plugin is basically a per session mini router instance (that wasn't
my idea, that is the way the specifications are written). It detects a TCP
connection that it needs to handle with rules that are unique for a given
session and then has to apply rules that are also unique per session to
that TCP connection. For the moment only HTTP with redirect rules are
handled (your normal captive portal use case).

What I need to do is:
  a) detect the UPF session and the TCP connection in a packet forwarding
graph node and create a TCP session from it. The destination IP will not be
local, so the normal local input does not work.
  b) pass metadata (the matched session and rule) into the TCP connection.

a) is somewhat doable, but passing metadata from the detection node into
the session proves challenging (without reimplementing all of the TCP input
node). There are no fields (except for IP headers) that are passed from the
vnet buffer into the TCP connection.

Any hints or ideas?

Regards,
Andreas


[1]: https://gerrit.fd.io/r/c/vpp/+/15798

-- 

Andreas Schultz

-- 

Principal Engineer

t: +49 391 819099-224

--- enabling your networks
-

Travelping GmbH
Roentgenstraße 13
39108 Magdeburg
Germany

t: +49 391 819099-0
f: +49 391 819099-299

e: i...@travelping.com
w: https://www.travelping.com/
Company registration: Amtsgericht Stendal
Geschaeftsfuehrer: Holger Winkelmann
Reg. No.: HRB 10578
VAT ID: DE236673780
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

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


[vpp-dev] [Question] Do you plan to add WireGuard support?

2020-03-16 Thread Denis Tingajkin
Hello,

I'm interested to use WireGuard tunnel with VPP interfaces, and I've got the 
next question:

1. Do you plan to add WireGuard interface type into VPP?

Also, it will be great if you have any ideas/examples of how WireGuard 
interface can be used with VPP interfaces(AF_PACKET, memif, tap...).


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

View/Reply Online (#15792): https://lists.fd.io/g/vpp-dev/message/15792
Mute This Topic: https://lists.fd.io/mt/72001454/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] Is there any Linux FD to poll for VCL message

2020-03-16 Thread Florin Coras
Hi Murthy, 

Inline.

> On Mar 16, 2020, at 12:35 AM, Satya Murthy  wrote:
> 
> Hi Florin,
>
> Over the weekend, I went through the document that you mentioned and it gave 
> me a good overview. Thanks for pointing to that doc.
> However, my task of integrating mqs->epfd into our main dispatch loop still 
> seems to be needing more finer details of the code.

Glad it helped. 

>
> With this respect, I have following few queries. It would be great if you can 
> help with this.
> If this path poses more effort/risk in integration, we may want to switch to 
> host interface approach ( which has its own issues though :(  )

This does need more effort but as long as you understand what you’re doing it 
should be fine. 

>
> 1) Terminology mapping.
> In the VCL application framework, is the following mapping a correct 
> understanding (with some open items) ?
>
> TCP-Application => app with a specific client index

I’d call the app an application that needs a tcp connection. And yes, it will 
have a client index in vpp. 

> Worker  => thread in the tcp-application 

For your use case, yes. New threads are not implicitly mapped to new workers. 
 
> Session => tcp end point

Session in vcl is equivalent to an fd. The actual tcp endpoint is in the tcp 
transport layer which sits under the session layer in vpp.

> mq in worker=> mapped to ?

There’s no mapping here. The message queue is the “channel” on which vcl 
receives io/ctrl notifications from vpp. 

> mq_evt_conn => mapped to ?

Applications don’t have access to this. They only have access to the “mqs epoll 
fd”, i.e., mqs_epfd. Previously, the workers could’ve had more fds in their 
mqs_epfd but today we can only have 1, the mq’s eventfd, if one was configured. 
Initially, this mqs_epfd was used to epoll all of the fds in it, now it’s used 
to epoll the mq’s eventfd. In the future, this could be converted to a normal 
fd, but it should be transparent for the app. 

>
> 2) Howcome vppcom_epoll_create is creating a new session. Bit confusing here.

That’s like creating a new fd, i.e., you’re given a “session handle” in return. 
Why would it be confusing? 

>
> 3) Is the TCP server listen_fd also can be integrated into our application 
> dispatch loop ? 

Not sure I understood the question. Are you asking if you can integrate a 
listener fd in a vcl epoll fd? Then, yes. 

>
> 4) How to get hold of mqs->epfd to put into our dispatcher? 
>I see that the vcl_worker_t is inside vcl_private.c and .h which are not 
> accessible by the application directly.
>Also, i dont see a direct need of having vcl_test_worker* framework in our 
> app. Hope this is fine.

vcl_test_worker is a test toy app, so you really don’t need it. Applications 
should only use vppcom.h and the function you’re looking for is 
vppcom_worker_mqs_epfd. That will return the worker’s mqs_epfd which you can 
afterwards EPOLL_CTL_ADD to your linux epoll fd. 

>
> 5) why can't the TCP application directly use vcl_worker_t data structure ?

Because we don’t want applications to interact/depend on vcl internals. Also, 
the goal with vcl is to have a posix-like api. You should not need more than 
the session handles and the apis exposed in vppcom.h

>   
> 6) Is there a sample tcp server example that has the server implementation 
> with linux epoll instead of vppcom_epoll system.

A simple one, no, as far as I know. This mechanism was used in the envoy 
integration done here [1], but that’s not probably the easiest thing to follow. 

[1] https://github.com/sbelair2/envoy/tree/vpp_integration 


>
> 7) Do you think this approach of integration will be more complex and hence 
> do you suggest us moving to LDP (or) host interface approach ?
>Please let us know.

It will be slightly more complicated because you’ll be “manually” tracking the 
mq’s activity. But in terms of actual extra code needed, you only need to make 
sure that whenever you get an epoll event on the mqs_epfd, you call 
vppcom_epoll_wait() with the vcl epoll fd to which you’ve added your app’s 
sessions (probably including the listen_fd you mentioned above). 

>
> Thanks in advance for your time.

Hope it helps. 

Regards, 
Florin

>
> -- 
> Thanks & Regards,
> Murthy 

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

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


[vpp-dev] Coverity run FAILED as of 2020-03-16 14:00:25 UTC

2020-03-16 Thread Noreply Jenkins
Coverity run failed today.

Current number of outstanding issues are 2
Newly detected: 0
Eliminated: 0
More details can be found at  
https://scan.coverity.com/projects/fd-io-vpp/view_defects
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#15790): https://lists.fd.io/g/vpp-dev/message/15790
Mute This Topic: https://lists.fd.io/mt/71998544/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] Unable to ping VPP interface when using SRIOV VF

2020-03-16 Thread Neale Ranns via Lists.Fd.Io

Hi Satish,

If the solution to the problem is to add configuration for DPDK for this 
interface type in this situation, can I request you ask the question on the 
DPDK support lists as to why the extra config to accept multicast packets is 
required.

Regards,
neale

From: Satish Singh 
Date: Monday 16 March 2020 at 10:10
To: "Jerome Tollet (jtollet)" , "Neale Ranns (nranns)" 
, "Damjan Marion (damarion)" , 
"vpp-dev@lists.fd.io" 
Cc: Krishnamoney Elayathu , Mrityunjaya Kumar Altran 
, Prasad Hiremath , 
Venkatarao M , praveenkumar A S 
, Venkatesh Narayanaswamy , "Ole 
Troan (otroan)" , Mahesh Sivapuram 
, Prashanth Bhaskar , 
Basawaraj E N , Lokesh Chimbili 

Subject: RE: Unable to ping VPP interface when using SRIOV VF

Hi Jerome, Neale, Ole

Could you please check below mail and help us to find proper solution?

Regards,
Satish Singh

From: Satish Singh
Sent: 11 March 2020 12:52
To: Jerome Tollet (jtollet) ; Neale Ranns (nranns) 
; Damjan Marion (damarion) ; 
'vpp-dev@lists.fd.io' 
Cc: Krishnamoney Elayathu ; Mrityunjaya Kumar Altran 
; Prasad Hiremath ; 
Venkatarao M ; praveenkumar A S 
; Venkatesh Narayanaswamy ; Ole 
Troan (otroan) ; Mahesh Sivapuram ; 
Prashanth Bhaskar ; Basawaraj E N 
; Lokesh Chimbili 
Subject: RE: Unable to ping VPP interface when using SRIOV VF

Hi Jerome, Neale, Ole

We were debugging issue regarding IPV6 ping failure between 
Linux_host_interface-->vpp_SRIOV_VF_interface and also between 
vpp_SRIOV_VF_interface <---> vpp_SRIOV_VPP_interface.
While debugging we found that src interface is sending "Neighbour Solicitation" 
with correct destination multicast IP and mac addresses.
SRIOV PF is receiving "Neighbour Solicitation" message but not forwarding it to 
VPP VF.

To make it work, we explicitly set multicast mac address 
33:33:ff:IPv6_byte[2]:IPv6_byte[1]:IPv6_byte[0] on VPP VF interface , using 
dpdk API rte_eth_dev_set_mc_addr_list during IP assignment and IPV6 ping start 
working.

We want to confirm two points:
1) Do we need to explicitly assign multicast mac address in case of IPV6 in 
VPP?, if yes do we need to raise bug on VPP and provide patch for fix.
2) Are we missing some configuration in VPP which might not need above hack.

Versions:
Kernel version: 3.10.0
VPP version: vpp-20.01



Regards,
Satish Singh

From: Lokesh Chimbili
Sent: 26 February 2020 15:48
To: Jerome Tollet (jtollet) mailto:jtol...@cisco.com>>
Cc: Krishnamoney Elayathu 
mailto:kelaya...@altiostar.com>>; Mrityunjaya Kumar 
Altran mailto:kmrityunj...@altiostar.com>>; Neale 
Ranns (nranns) mailto:nra...@cisco.com>>; Damjan Marion 
(damarion) mailto:damar...@cisco.com>>; Prasad Hiremath 
mailto:phirem...@altiostar.com>>; Venkatarao M 
mailto:venkatar...@altiostar.com>>; praveenkumar A S 
mailto:pkuma...@altiostar.com>>; Venkatesh 
Narayanaswamy mailto:nve...@altiostar.com>>; Ole Troan 
(otroan) mailto:otr...@cisco.com>>; Mahesh Sivapuram 
mailto:msivapu...@altiostar.com>>; Prashanth Bhaskar 
mailto:pbhas...@altiostar.com>>; Basawaraj E N 
mailto:bnadaga...@altiostar.com>>; Satish Singh 
mailto:ssi...@altiostar.com>>
Subject: RE: Unable to ping VPP interface when using SRIOV VF


Hi Jerome, Neale, Ole,

On running “pcap trace tx intfc vpp_eth1” on the VPP interface, we see that 
“Multicast Listener Report Message” messages are not sent whenever we 
add/remove an IPv6 address on the VPP interface using SRIOV VF.

Aren’t these messages expected to be sent? I see them getting sent whenever I 
add/remove an IPv6 address on a linux interface.

I tried subscribing to vpp-dev mailing list.
I’m not receiving any confirmation email, even though I sent an email with the 
subject “I Use Exchange And I'm Not Receiving Group Emails” to 
supp...@groups.io

I’ll repost as soon as the subscription is complete, meanwhile can you please 
take a look at this issue and suggest.

Please find the VPP startup.conf attached.
Please let me know if I need to share any additional information/logs.

VPP version:
vpp-20.01

VPP start:
vpp -c startup.conf

vppctl commands executed:
set interface state vpp_eth1 up
set interface ip address vpp_eth1 fd02:298c:8dfe:0402::::126b/124

i40e driver version:
[root@n4bng1 ~]# ethtool -i sriov0
driver: i40e
version: 2.8.10-k
firmware-version: 4.00 0x800014f3 1.2228.0
expansion-rom-version:
bus-info: :67:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

NIC Hardware:
67:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 
10GbE SFP+ (rev 09)

OS version:
CentOS Linux release 7.7.1908 (Core)

Kernel version:
3.10.0-1062.el7.x86_64

Thanks and Regards,
Lokesh.C

From: Jerome Tollet (jtollet) [mailto:jtol...@cisco.com]
Sent: 25 February 2020 23:46
To: Lokesh Chimbili
Cc: Krishnamoney Elayathu; Mrityunjaya Kumar Altran; Neale Ranns (nranns); 
Damjan Marion (damarion); Prasad Hiremath; Venkatarao M; praveenkumar A S; 
Venkatesh Narayanaswamy; Ole Troan 

Re: [vpp-dev] Is there any Linux FD to poll for VCL message

2020-03-16 Thread Satya Murthy
Hi Florin,

Over the weekend, I went through the document that you mentioned and it gave me 
a good overview. Thanks for pointing to that doc.
However, my task of integrating mqs->epfd into our main dispatch loop still 
seems to be needing more finer details of the code.

With this respect, I have following few queries. It would be great if you can 
help with this.
If this path poses more effort/risk in integration, we may want to switch to 
host interface approach ( which has its own issues though :(  )

1) Terminology mapping.
In the VCL application framework, is the following mapping a correct 
understanding (with some open items) ?

TCP-Application => app with a specific client index
Worker          => thread in the tcp-application
Session         => tcp end point
mq in worker    => mapped to ?
mq_evt_conn     => mapped to ?

2) Howcome vppcom_epoll_create is creating a new session. Bit confusing here.

3) Is the TCP server listen_fd also can be integrated into our application 
dispatch loop ?

4) How to get hold of mqs->epfd to put into our dispatcher?
I see that the vcl_worker_t is inside vcl_private.c and .h which are not 
accessible by the application directly.
Also, i dont see a direct need of having vcl_test_worker* framework in our app. 
Hope this is fine.

5) why can't the TCP application directly use vcl_worker_t data structure ?

6) Is there a sample tcp server example that has the server implementation with 
linux epoll instead of vppcom_epoll system.

7) Do you think this approach of integration will be more complex and hence do 
you suggest us moving to LDP (or) host interface approach ?
Please let us know.

Thanks in advance for your time.

--
Thanks & Regards,
Murthy
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

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