freebsd-dev/sys
Navdeep Parhar 298d969c53 cxgbe(4): netmap support for Terminator 5 (T5) based 10G/40G cards.
Netmap gets its own hardware-assisted virtual interface and won't take
over or disrupt the "normal" interface in any way.  You can use both
simultaneously.

For kernels with DEV_NETMAP, cxgbe(4) carves out an ncxl<N> interface
(note the 'n' prefix) in the hardware to accompany each cxl<N>
interface.  These two ifnet's per port share the same wire but really
are separate interfaces in the hardware and software.  Each gets its own
L2 MAC addresses (unicast and multicast), MTU, checksum caps, etc.  You
should run netmap on the 'n' interfaces only, that's what they are for.

With this, pkt-gen is able to transmit > 45Mpps out of a single 40G port
of a T580 card.  2 port tx is at ~56Mpps total (28M + 28M) as of now.
Single port receive is at 33Mpps but this is very much a work in
progress.  I expect it to be closer to 40Mpps once done.  In any case
the current effort can already saturate multiple 10G ports of a T5 card
at the smallest legal packet size.  T4 gear is totally untested.

trantor:~# ./pkt-gen -i ncxl0 -f tx -D 00:07:43🆎cd:ef
881.952141 main [1621] interface is ncxl0
881.952250 extract_ip_range [275] range is 10.0.0.1:0 to 10.0.0.1:0
881.952253 extract_ip_range [275] range is 10.1.0.1:0 to 10.1.0.1:0
881.962540 main [1804] mapped 334980KB at 0x801dff000
Sending on netmap:ncxl0: 4 queues, 1 threads and 1 cpus.
10.0.0.1 -> 10.1.0.1 (00:00:00:00:00:00 -> 00:07:43🆎cd:ef)
881.962562 main [1882] Sending 512 packets every  0.000000000 s
881.962563 main [1884] Wait 2 secs for phy reset
884.088516 main [1886] Ready...
884.088535 nm_open [457] overriding ifname ncxl0 ringid 0x0 flags 0x1
884.088607 sender_body [996] start
884.093246 sender_body [1064] drop copy
885.090435 main_thread [1418] 45206353 pps (45289533 pkts in 1001840 usec)
886.091600 main_thread [1418] 45322792 pps (45375593 pkts in 1001165 usec)
887.092435 main_thread [1418] 45313992 pps (45351784 pkts in 1000834 usec)
888.094434 main_thread [1418] 45315765 pps (45406397 pkts in 1002000 usec)
889.095434 main_thread [1418] 45333218 pps (45378551 pkts in 1001000 usec)
890.097434 main_thread [1418] 45315247 pps (45405877 pkts in 1002000 usec)
891.099434 main_thread [1418] 45326515 pps (45417168 pkts in 1002000 usec)
892.101434 main_thread [1418] 45333039 pps (45423705 pkts in 1002000 usec)
893.103434 main_thread [1418] 45324105 pps (45414708 pkts in 1001999 usec)
894.105434 main_thread [1418] 45318042 pps (45408723 pkts in 1002001 usec)
895.106434 main_thread [1418] 45332430 pps (45377762 pkts in 1001000 usec)
896.107434 main_thread [1418] 45338072 pps (45383410 pkts in 1001000 usec)
...

Relnotes:	Yes
Sponsored by:	Chelsio Communications.
2014-05-27 18:18:41 +00:00
..
amd64 Add segment protection and limits violation checks in vie_calculate_gla() 2014-05-27 04:26:22 +00:00
arm Rework the Ti GPIO driver to work on multiple SoCs. At the moment it could 2014-05-26 18:02:36 +00:00
boot "%p" formatting already includes "0x" prefix in printout. 2014-05-21 18:02:19 +00:00
bsm IFp4 @1192291: 2014-04-07 20:44:00 +00:00
cam Provide better descriptions for 'struct ctl_scsiio' fields; based mostly 2014-05-04 15:35:04 +00:00
cddl Improve sysctl descriptions for new ZFS sysctls: 2014-05-22 05:30:38 +00:00
compat In freebsd32_sendmsg(), replace the call to sockargs() followed by a 2014-04-05 18:56:01 +00:00
conf cxgbe(4): netmap support for Terminator 5 (T5) based 10G/40G cards. 2014-05-27 18:18:41 +00:00
contrib Move mutex creation from ipf_log_soft_init() to ipf_log_soft_create() 2014-05-24 06:05:21 +00:00
crypto NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
ddb ddb: Minor style cleanups. 2014-03-31 16:37:41 +00:00
dev cxgbe(4): netmap support for Terminator 5 (T5) based 10G/40G cards. 2014-05-27 18:18:41 +00:00
fs Initial import of character device in userspace support for FreeBSD. 2014-05-23 08:46:28 +00:00
gdb rename scheduler->swapper and SI_SUB_RUN_SCHEDULER->SI_SUB_LAST 2013-07-24 09:45:31 +00:00
geom Add a topology trace to the g_spoil_event. 2014-05-19 16:08:15 +00:00
gnu Symbolic bindings for the dts files... 2014-02-28 16:51:33 +00:00
i386 imagact_binmisc builds for all supported architectures, so enable it for all. 2014-05-22 05:04:40 +00:00
ia64 Bring in the mpr(4) driver for LSI's MPT3 12Gb SAS controllers. 2014-05-02 20:25:09 +00:00
isa Remove vestiges of knowing the ISA bus, which we gave up on around 20 2014-03-19 21:03:04 +00:00
kern Add a new taskqueue setup method that takes a cpuid to pin the 2014-05-24 20:37:15 +00:00
kgssapi Add support for host-based (Kerberos 5 service principal) initiator 2013-07-09 01:05:28 +00:00
libkern Fix typo 2013-11-29 20:14:26 +00:00
mips Remove duplicate: 2014-05-21 21:30:00 +00:00
modules cxgbe(4): netmap support for Terminator 5 (T5) based 10G/40G cards. 2014-05-27 18:18:41 +00:00
net Bump bhyve allocation up to 20 bits to avoid 2014-05-20 02:59:13 +00:00
net80211 Use logical rather than bitwise OR in if() expression. 2014-04-26 23:22:49 +00:00
netgraph Make ng_mppc to not disable the node in case of multiple packet loss. 2014-05-22 07:27:04 +00:00
netinet The users of RSS shouldn't be directly concerned about hash -> CPU ID 2014-05-27 08:06:20 +00:00
netinet6 Cancel DAD for an ifa when the ifp has ND6_IFF_IFDISABLED as early as 2014-05-16 15:53:31 +00:00
netipsec Only do a ports check if this is a NAT-T SA. Otherwise other 2014-05-24 09:29:23 +00:00
netnatm Provide includes that are needed in these files, and before were read 2013-10-26 18:18:50 +00:00
netpfil Since ipfw nat configures all options in one step, we should set all bits 2014-05-18 14:25:19 +00:00
netsmb Remove redundant unlock. 2014-04-17 12:22:08 +00:00
nfs - Remove rt_metrics_lite and simply put its members into rtentry. 2014-03-05 01:17:47 +00:00
nfsclient For software builds, the NFS client does many small 2013-12-07 23:05:59 +00:00
nfsserver The PR reported that the old NFS server did not set uio_td == NULL 2014-04-24 20:47:58 +00:00
nlm Correct a typo in nlm_find_host_by_addr(): the intention of the 2014-03-11 00:25:55 +00:00
ofed Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
opencrypto allow the kern.cryptodevallowsoft sysctl to enable symetric/hashes too... 2014-03-11 01:45:46 +00:00
pc98 lindev(4): finish the partial commit in r265212 2014-05-02 07:14:22 +00:00
pci Increase the number of TX DMA segments from 32 to 35. It turned 2014-03-31 01:54:59 +00:00
powerpc oea64 uses 4k pages, too. 2014-05-15 15:17:44 +00:00
rpc Properly free resources in case of error. 2014-05-02 20:45:55 +00:00
security audit: plug FILEDESC_LOCK leak in audit_canon_path. 2014-03-21 01:30:33 +00:00
sparc64 Bring in the mpr(4) driver for LSI's MPT3 12Gb SAS controllers. 2014-05-02 20:25:09 +00:00
sys Garbage-collect a couple of unused identifiers. 2014-05-27 02:00:43 +00:00
teken Fix typo. 2014-02-06 13:28:06 +00:00
tools Fix logic error. <blush> 2014-04-30 20:52:38 +00:00
ufs Due to reasons unknown at this time, the system can be forced to write 2014-05-06 20:40:16 +00:00
vm There is no reason to perform the pmap_remove() on the kernel pmap while 2014-05-23 16:22:36 +00:00
x86 Now that there are separate back-end implementations of busdma, the bounce 2014-05-27 14:18:57 +00:00
xdr
xen Make this compile with gcc. 2014-04-05 22:43:18 +00:00
Makefile Add a new target cscope-hook. 2014-05-15 03:47:52 +00:00