Re: [dpdk-users] Newbie query: DPDK use case scenario

2017-09-14 Thread Anupam Kapoor
,
| 1: if DPDK is something that our team can utilize for providing a
| faster networking platform, which the applications team (say teams
| that use standard unix networking interface to develop software)
| can use ? or DPDK is relevant mostly for companies that build Core
| Networking Hardware and Software products ?
`
this would be very usecase dependent.

fwiw, dpdk doesnt really come with a canonical network stack, and you
would need something for app folks to use.

if you look at bunch of sample applications
(http://dpdk.org/doc/guides/sample_app_ug/index.html) you can get a
fair idea of effort etc. required for your usecase.

--
kind regards
anupam


In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.

On Fri, Sep 15, 2017 at 2:15 AM, amit mehta  wrote:

> Hello,
>
> I work at a platform team in a Software Company. Our group
> is responsible for providing and maintaining middleware software
> for our applications team.
>
> We have Linux boxes (x86_64 machines running Linux) and have DPDK
> supported Intel NIC cards (I had a quick look at the DPDK website
> and fortunately, we have such NICs in our Linux boxes).
>
> I am fairly new to the entire fast network packet processing domain,
> hence, I'm wondering :
>
> 1: if DPDK is something that our team can utilize for providing a
> faster networking platform, which the applications team (say teams
> that use standard unix networking interface to develop software)
> can use ? or DPDK is relevant mostly for companies that build Core
> Networking Hardware and Software products ?
>
> 2: If mine is indeed a valid use case for DPDK usage, then how
> big could be the impact on the existing software ?
>
> Thank you for your help.
>
> Thanks,
> Amit
>
> --
> Sent from Bahamas, while drinking chi-chi and piña colada.
>


Re: [dpdk-users] Question about range type of DPDK ACL

2017-06-22 Thread Anupam Kapoor
On Thu, Jun 22, 2017 at 11:28 AM, Doohwan Lee  wrote:

> Ok. The code to set rule for IPv4 address is like below.
>

​this is same as setting masks (1.0.0.0/8) :)

fwiw, beware of memory explosion in this case though...
​
--
kind regards
anupam​



In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


Re: [dpdk-users] Question about range type of DPDK ACL

2017-06-21 Thread Anupam Kapoor
On Wed, Jun 21, 2017 at 11:36 AM, Doohwan Lee  wrote:

> DPDK ACL library uses multi-bit trie with 8-bit stride.
> I guess that implementation of the trie doesn't support 32bit range
> matching.
>

​well, you _can_ have address wildcard matches e.g. an address+mask
combination of 1.2.3.0/24 would match all addresses 1.2.3.[0..255]

​--
kind regards
anupam​

In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


Re: [dpdk-users] Memory Allocation

2017-05-16 Thread Anupam Kapoor
On Tue, May 16, 2017 at 9:44 PM, Kumaraparameshwaran Rathnavel <
kr...@cloudsimple.com> wrote:

> will the memory be allocated on the Node where the DPDK thread was
> initially running when the memory allocation functions was called


​rte_malloc​(...) will return memory allocated on the NUMA socket of the
core which made the invokation. access to this from other locations will
incur the qpi penalty...

​--
thanks
anupam​


In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


Re: [dpdk-users] DPDK beginer: Best way to try out DPDK on a laptop with unsupported NIC

2017-01-30 Thread Anupam Kapoor
On Tue, Jan 31, 2017 at 8:12 AM, Matthew Hall  wrote:

> vmxnet3 and virtio-net support in DPDK are both broken in VirtualBox. I
>

​how about kvm+qemu combination. those seem to work fine for me. ymmv (tm)

--
kind regards
anupam​


In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


Re: [dpdk-users] DPDK pinned Memory for non Root User

2016-12-28 Thread Anupam Kapoor
On Wed, Dec 28, 2016 at 4:21 PM, Shreyansh Jain 
wrote:

> There is possible way, as documented here:
> http://dpdk.org/doc/guides/linux_gsg/enable_func.html#
> running-dpdk-applications-without-root-privileges
>
> But I haven't tried it myself and neither do I know if it will solve your
> problem.
>

​yeah it says that but afaik, ​/proc/self/pagemap cannot be opened (during
init) due to virt2phys translation issues...

​---
thanks
anupam​


In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


Re: [dpdk-users] DPDK pinned Memory for non Root User

2016-12-28 Thread Anupam Kapoor
On Wed, Dec 28, 2016 at 3:51 PM, Karthi M  wrote:

> So is there a way for App to get pinned memory for the users other than
> the root user.


i am assuming that you are on linux. ​afaik there is no way to ​run dpdk as
non-root. the thread you linked to has necessary information...

--
thanks
anupam


In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


Re: [dpdk-users] Freeing up Mbuf

2016-12-22 Thread Anupam Kapoor
On Thu, Dec 22, 2016 at 10:17 PM, Kumaraparameshwaran Rathnavel <
kr...@cloudsimple.com> wrote:

> In FreeBSD the user can actually specify the free routine for the mbuf
> when the transmit routine is called. Is this implemented in DPDK.


​currently, afaik, dpdk ​does not provide this functionality. basically,
there is no way to poll the tx-ring for consumed buffers. or to put it
another way, rte_eth_tx_burst doesn't synchronously transmit the packets.

​--
kind regards
anupam​


In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


Re: [dpdk-users] KNI - mbuf-sk_buff converstion

2016-12-21 Thread Anupam Kapoor
On Wed, Dec 21, 2016 at 1:09 PM, Avi Cohen  wrote:

> are zero_copy with respect  to the packet data (headers+payload) - is this
> correc


​umm mbuf's, and skb's are in different address spaces...

--
kind regards
anupam​


In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


[dpdk-users] Dell PowerEdge CPU IERR caused by DPDK 16.07

2016-11-22 Thread Anupam Kapoor
On Mon, Nov 21, 2016 at 3:45 PM, Norbert Nyak? 
wrote:

> As soon as I ran the testpipeline sample application on one of the
> servers it stops responding  and on the LCD info screen and in the
> logs CPU IERR error messages appear
>

?difficult to *conclusively* conclude ?that this might be _caused_ by dpdk.

what is the error that you see (not just the fact that you saw a CPU-IERR)
? for some more information have a look here:
http://www.dell.com/support/article/in/en/indhs1/SLN292634. maybe reseating
memory modules (or some such) on the machine where you see this might fix
the issue ?

one laborious but possible approach to conclude that this is caused (rather
than just _triggered_) by dpdk would be to invert machine configuration and
then retest ?

?--
thanks
anupam
?

In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


[dpdk-users] Is rte_get_timer_cycles()is same on all cores?

2016-11-15 Thread Anupam Kapoor
On Tue, Nov 15, 2016 at 12:44 PM, Chinmaya Dwibedy 
wrote:

> I think, it is same on all cores. Can
> anyone please correct me if I am wrong?
>

?it *should* be same but because of invariant-tsc support in latest intel
machines (see if cpuid gives you "0x8007/edx" which indicates its
presence)

?--
kind regards
anupam?


In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


[dpdk-users] [dpdk-dev] acl: delete/modify rule support

2016-11-15 Thread Anupam Kapoor
On Tue, Nov 15, 2016 at 10:40 AM, Nikhil Jagtap 
wrote:

> Is it possible to build the ACL context over a period of time, one rule
> at a time by calling build post each add operation?
> Something like this :
> rte_acl_add_rules(ctx, rule1, 1);
> rte_acl_build(ctx, build_cfg);
> rte_acl_add_rules(ctx, rule2, 1);
> rte_acl_build(ctx, build_cfg);
> rte_acl_add_rules(ctx, rule3, 1);
> rte_acl_build(ctx, build_cfg);
>
> I tried this, and it seems to be working - but still wanted to confirm.
>
?yes this is fine. but building the querying data-structure is not thread
safe. so more often than not, you are better of having a rule-list, and
then building it all in one fell swoop...
?


>
> 2) I did not find any delete-rule API. I understand from one of the email
> archives (http://dpdk.org/ml/archives/dev/2015-June/018868.html) that it
> is
> not supported. Any specific reason why deletion of rule is not supported?
> Any plan to support it?
> Any alternative way other than destroying the whole context, adding the new
> set of rules and building the rules again?
>
current implementation uses multibit-trie?s. to conserve memory, rules are
split into multiple non-overlapping/non-intersecting rules. i would wager
that implementing deletion would be non-trivial :)

better option might be to add/modify/delete your rule-list, and rebuild,
and then re-use...

?--
kind regards
anupam?


In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


[dpdk-users] Beginners question: rte_eth_tx_burst, rte_mbuf access synchronization

2016-11-11 Thread Anupam Kapoor
On Fri, Nov 11, 2016 at 3:19 PM, Philipp Beyer 
wrote:

> Basically, I need to send the same packet over a single interface, over an
> over again, with single bytes changed each time.
> I use rte_eth_tx_burst to send 16 packets at once. As I want to re-use the
> same buffers in a very simple way, I just increment the refcnt
> accordingly.
>

just throwing it out there: have you considered a trivial scheme of
repeatedly invoking 'rte_eth_tx_burst(...)'? till a value less than
'nb_pkts' is returned. once you reach that state, then the reuse can
happen...

--
kind regards
anupam
?

In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


[dpdk-users] Is DPDK compatible with C++11 threads?

2016-11-10 Thread Anupam Kapoor
On Thu, Nov 10, 2016 at 2:30 AM, Wiles, Keith  wrote:

> Also look at one of the DPDK examples as it uses a lthread on top of
> pthreads and it may give you some ideas as to how multiple threads can
> work. I am trying to remember which example and my dev machine is down at
> this time, but just search for lthread.


?this one: ?http://dpdk.org/doc/guides/sample_app_ug/performance_thread.html

one more thing that you probably need to watch out for would be libc
interactions within your C++11 application e.g. usage of stl containers
might exact a severe performance penalty...

--
kind regards
anupam


In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.


[dpdk-users] [dpdk-dev] [Crypto-API query]

2016-06-28 Thread Anupam Kapoor

> [2016-06-28T12:31:02+0530]: "amartya.das" (amartya.das):
moved the discussion to dpdk-users (from dpdk-dev)

,[ amartya.das ]
| But getting same error:
|
| Not sure about the problem, any path setting wrong so that it is not fetching?
`
couple of things:

   - assuming standard build paths, can you please check if
 'CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y' in your, build/.config ?

   - if it is, then see if you have bunch of object files in
build/build/drivers/crypto/aesni_mb
 for example, for me i see a bunch of files:
 -rw-rw-r-- 1 anupam anupam 26068 Jun 28 14:28 librte_pmd_aesni_mb.a
 -rw-rw-r-- 1 anupam anupam 0 Jun 28 14:28 _postbuild
 -rw-rw-r-- 1 anupam anupam 0 Jun 28 14:28 _postinstall
 -rw-rw-r-- 1 anupam anupam 15192 Jun 28 14:28 rte_aesni_mb_pmd.o
 -rw-rw-r-- 1 anupam anupam 10456 Jun 28 14:28 
rte_aesni_mb_pmd_ops.o

  - if you see this as well, then, while building the l2fwd-crypto
application, make sure that you have
'AESNI_MULTI_BUFFER_LIB_PATH' pointing to the correct place.

  - if this is also true, then check and see if your application
contains aes.*pmd symbols e.g.
   objdump -t build/l2fwd-crypto | grep 'aes.*pmd'

  - if this gives you something useful, then you are almost there :)
running the application e.g. like so:
[root at perf3 dpdk-sources]# 
examples/l2fwd-crypto/build/app/l2fwd-crypto -c 0xc -n 3 
--vdev="cryptodev_aesni_mb_pmd,socket_id=0,max_nb_sessions=128"
starts doing something sane...

couple of minor things:
  - after building the crypto-multi-buffer support make sure to run
the tests as well in 'LibTestApp'

if you are running on vcpu's this would most likely fail (no avx
support)

  - please note thtat 'socket_id' in the dpdk-cryptodev page is set
to '1'

--
thanks
anupam