Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Jan 2015 17:53:34 +0100
From:      Luigi Rizzo <rizzo@iet.unipi.it>
To:        "Alexander V. Chernikov" <melifaro@yandex-team.ru>
Cc:        "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, Navdeep Parhar <np@freebsd.org>
Subject:   Re: cxgbe and netmap
Message-ID:  <20150102165334.GB68836@onelab2.iet.unipi.it>
In-Reply-To: <54A6BFFE.5080103@yandex-team.ru>
References:  <54A6BFFE.5080103@yandex-team.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 02, 2015 at 06:57:50PM +0300, Alexander V. Chernikov wrote:
> Hello list!
> 
> FreeBSD has netmap support for chelsio T5 cards, which is amazing.
> The great thing about implementation is that you can play with
> traffic-generating applications without affecting "main" OS interface,
> which has always been a problem for Intel cards.
> However, this approach (having additional netmap-only ifp) turns to be a
> bit problematic for netmap-based networking elements participating in
> routing.
> 
> In Intel case you can configure all your interfaces, run routing daemon,
> run netmap application and punt all to-host traffic  to kernel via host
> pipes.

for clarity, please call this "host netmap PORT", not pipe, as the
latter can be confused with dummynet pipes.

> It looks like I can't do this using current implementation: mac
> addresses are different for main/netmap interfaces so I can't run
> routing daemon on main interface (or sub-interfaces).
> I also can't run routing daemon on top of ncxgbe* interface since it
> appears to ignore non-netmap-derived traffic..

Maybe navdeep did not implement the host side for ncxgbe ?
This should be a relatively trivial thing to do.

Otherwise, for the time being, you could try the following hack:

- create a tap interface, say tap*, and give it the same MAC as ncxgbe*.
  You will use only the host port for tap*

- open both tap* and ncxgbe* in netmap mode, make sure to set the same
  flags, mode (promisc etc.), mtu on both;

- run the routing daemon on top of tap*

- use the tap*'s host netmap port to send up traffic coming from ncxgbe*
  directed to the host (and vice versa, inject netmap packets coming
  from tap*'s host netmap port into ncxgbe*'s netmap rings.

cheers
luigi

> Is it possible to make ncxgbe* interfaces behave more like ordinary ones?
> 
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150102165334.GB68836>