summaryrefslogtreecommitdiffstats
path: root/sys/dev/cxgb
Commit message (Collapse)AuthorAgeFilesLines
* Check in the actual module recognition code for the Chelsiognn2008-12-182-36/+175
| | | | | | driver. Obtained from: Chelsio Inc.
* Use inc_flags instead of the inc_isipv6 alias which so farbz2008-12-171-3/+0
| | | | | | | | | | | | | | had been the only flag with random usage patterns. Switch inc_flags to be used as a real bit field by using INC_ISIPV6 with bitops to check for the 'isipv6' condition. While here fix a place or two where in case of v4 inc_flags were not properly initialized before.[1] Found by: rwatson during review [1] Discussed with: rwatson Reviewed by: rwatson MFC after: 4 weeks
* This main goals of this project are:qingli2008-12-152-27/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. separating L2 tables (ARP, NDP) from the L3 routing tables 2. removing as much locking dependencies among these layers as possible to allow for some parallelism in the search operations 3. simplify the logic in the routing code, The most notable end result is the obsolescent of the route cloning (RTF_CLONING) concept, which translated into code reduction in both IPv4 ARP and IPv6 NDP related modules, and size reduction in struct rtentry{}. The change in design obsoletes the semantics of RTF_CLONING, RTF_WASCLONE and RTF_LLINFO routing flags. The userland applications such as "arp" and "ndp" have been modified to reflect those changes. The output from "netstat -r" shows only the routing entries. Quite a few developers have contributed to this project in the past: Glebius Smirnoff, Luigi Rizzo, Alessandro Cerri, and Andre Oppermann. And most recently: - Kip Macy revised the locking code completely, thus completing the last piece of the puzzle, Kip has also been conducting active functional testing - Sam Leffler has helped me improving/refactoring the code, and provided valuable reviews - Julian Elischer setup the perforce tree for me and has helped me maintaining that branch before the svn conversion
* Bug fix to support N310 version of Chelsio cards (board ID 1088).gnn2008-12-062-3/+12
| | | | | Obtained from: Chelsio Inc. MFC after: 3 days
* Re submit code to print the part and serial number for Chelsio cards.gnn2008-12-051-0/+7
| | | | | | The original code was accidentally removed in another commit. MFC after: 1 day
* Fix a bug with the ael1006 PHY. The bug shows up as persistent but incompletegnn2008-12-041-0/+10
| | | | | | | | packet loss, of between 10-30%. The fix is to put the PHY into and take it out of local loopback mode when resetting the interface. Obtained from: Chelsio Inc. MFC after: 3 days
* Rather than using hidden includes (with cicular dependencies),bz2008-12-022-0/+6
| | | | | | | | | | | directly include only the header files needed. This reduces the unneeded spamming of various headers into lots of files. For now, this leaves us with very few modules including vnet.h and thus needing to depend on opt_route.h. Reviewed by: brooks, gnn, des, zec, imp Sponsored by: The FreeBSD Foundation
* Bug fix from Chelsio which addresses the issue of the device resettinggnn2008-12-021-25/+2
| | | | | | | | | when it sees only received packets. In some cases where a device only recieves data it mistakenly thinks that its transmitting side is broken and resets the device. Obtained from: Chelsio Inc. MFC after: 3 days
* - fix bug where dnsperf would stop transmitting after a few secondskmacy2008-12-021-57/+32
| | | | | | | | | | | - break complex conditionals in to multiple lines to avoid wrapping - remove copious unused debug statements - be more aggressive about cleaning in the calling thread - eliminate usage of ENOSPC - increase number of iterations that cxgbsp can do - eliminate "initerr" usage to simplify ENOBUFS handling - when coalescing pass all packets to BPF - always set overrun if hardware queue is full
* The pkthdr field is flowid not rss_hashkmacy2008-12-021-1/+1
|
* - fix multiqueue conditionalkmacy2008-12-021-2/+2
| | | | | | - don't leak mbuf tags in the non-conditional case Found by: Navdeep Parhar
* integrate use after free fixes from private branchkmacy2008-12-021-54/+44
| | | | Found by: kkenn@
* null out m_next when marshalling a packetkmacy2008-12-011-1/+3
|
* Update internal mac stats every time the tick task is calledkmacy2008-12-011-25/+16
| | | | | if we don't do this "netstat -w 1" will frequently see negative differences in packets sent
* don't manually track statisticskmacy2008-12-011-6/+0
|
* Proper fix for tracking ifnet statisticskmacy2008-12-011-0/+52
|
* Add backward compatibility ifdefs for non-multiq kernelskmacy2008-11-233-2/+29
|
* work around periodic leak on queue overrun by enabling coalescing of packets ↵kmacy2008-11-231-1/+1
| | | | | | in to work requests by default
* intr_machdep.h breaks build on some arches and is not neededkmacy2008-11-231-4/+0
|
* - enable multiple transmit queueskmacy2008-11-225-246/+109
| | | | | | | | | | | - invert sense of hw.cxgb.singleq tunable to hw.cxgb.multiq - don't wake up transmitting thread by default - add per tx queue ifaltq to handle ALTQ - remove several unused functions in cxgb_multiq.c - add several sysctls: multiq_tx_enable, coalesce_tx_enable, and wakeup_tx_thread - this obsoletes the hw.cxgb.snd_queue_len as ifq is replaced by a buf_ring
* - bump __FreeBSD version to reflect added buf_ring, memory barriers,kmacy2008-11-226-225/+38
| | | | | | | | | | | | | | | | | and ifnet functions - add memory barriers to <machine/atomic.h> - update drivers to only conditionally define their own - add lockless producer / consumer ring buffer - remove ring buffer implementation from cxgb and update its callers - add if_transmit(struct ifnet *ifp, struct mbuf *m) to ifnet to allow drivers to efficiently manage multiple hardware queues (i.e. not serialize all packets through one ifq) - expose if_qflush to allow drivers to flush any driver managed queues This work was supported by Bitgravity Inc. and Chelsio Inc.
* Several small additions to the Chelsio 10G driver.gnn2008-11-214-5/+38
| | | | | | | | | | | | | 1) Fix a bug in dealing with the Alerus 1006 PHY which prevented the device from ever coming back up once it had been set to down. 2) Add a kernel tunable (hw.cxgb.snd_queue_len) which makes it possible to give the device more than IFQ_MAXLEN entries in its send queue. The default remains 50. 3) Add code to place the card'd identification and serial number into its description (%desc) so that users can tell which card they have installed.
* Change the initialization methodology for global variables scheduledzec2008-11-191-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | for virtualization. Instead of initializing the affected global variables at instatiation, assign initial values to them in initializer functions. As a rule, initialization at instatiation for such variables should never be introduced again from now on. Furthermore, enclose all instantiations of such global variables in #ifdef VIMAGE_GLOBALS blocks. Essentialy, this change should have zero functional impact. In the next phase of merging network stack virtualization infrastructure from p4/vimage branch, the new initialization methology will allow us to switch between using global variables and their counterparts residing in virtualization containers with minimum code churn, and in the long run allow us to intialize multiple instances of such container structures. Discussed at: devsummit Strassburg Reviewed by: bz, julian Approved by: julian (mentor) Obtained from: //depot/projects/vimage-commit2/... X-MFC after: never Sponsored by: NLnet Foundation, The FreeBSD Foundation
* Update firmware version checkkmacy2008-11-125-17/+28
| | | | | | | make ddp a tunable Obtained from: Chelsio Inc. MFC after: 3 days
* For now our LRO code (tcp_lro.c) only supports IPv4 properly thusbz2008-11-061-0/+3
| | | | | | | only enable if INET is on. Reviewed by: kmacy MFC after: 2 months
* Hide AF_INET specific ioctl handling under #ifdef INET.bz2008-11-061-0/+4
| | | | | Reviewed by: kmacy MFC after: 2 months
* Track number of packets transmitted and number of packets receivedkmacy2008-10-171-1/+6
| | | | | PR: 125806 MFC after: 3 days
* Fix bug in LRO on T304 whereby a packet could be sent to the wrong ↵kmacy2008-10-031-1/+13
| | | | | | | interface's ifp. Submitted by: Chelsio Inc. MFC after: 1 day
* Step 1.5 of importing the network stack virtualization infrastructurezec2008-10-022-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | from the vimage project, as per plan established at devsummit 08/08: http://wiki.freebsd.org/Image/Notes200808DevSummit Introduce INIT_VNET_*() initializer macros, VNET_FOREACH() iterator macros, and CURVNET_SET() context setting macros, all currently resolving to NOPs. Prepare for virtualization of selected SYSCTL objects by introducing a family of SYSCTL_V_*() macros, currently resolving to their global counterparts, i.e. SYSCTL_V_INT() == SYSCTL_INT(). Move selected #defines from sys/sys/vimage.h to newly introduced header files specific to virtualized subsystems (sys/net/vnet.h, sys/netinet/vinet.h etc.). All the changes are verified to have zero functional impact at this point in time by doing MD5 comparision between pre- and post-change object files(*). (*) netipsec/keysock.c did not validate depending on compile time options. Implemented by: julian, bz, brooks, zec Reviewed by: julian, bz, brooks, kris, rwatson, ... Approved by: julian (mentor) Obtained from: //depot/projects/vimage-commit2/... X-MFC after: never Sponsored by: NLnet Foundation, The FreeBSD Foundation
* update callers of vm_fault_hold_user_pageskmacy2008-09-302-11/+15
| | | | MFC after: 1 week
* Refactor vm_fault_hold_user_pages:kmacy2008-09-302-65/+56
| | | | | | | | | | - simplify page hold logic - allow pages for processes other than that of curthread to have pages held - normalize the interface to more closely resemble the functions in sys/vm MFC after: 1 week
* Make sure that optical PHYs work ...kmacy2008-09-301-0/+6
| | | | | Submitted by: Chelsio Inc. MFC after: 1 day
* vm_fault_hold_user_pages will not return if an address in the range passed ↵kmacy2008-09-291-14/+8
| | | | | | | | | | | | in is mapped RO but an RW mapping exists for the underlying page. This change fixes the bug by using the page / NULL returned from pmap_extract_and_hold to determine whether or not vm_fault needs to be called. The bug was pointed out by alc. MFC after: 3 days
* fix insta-panic:kmacy2008-09-252-0/+9
| | | | | | | - determine which ext_arg offsets to use based on the version number Submitted by: Chelsio Inc. MFC after: 1 day
* - Remove default NIC dependency on ulp headerskmacy2008-09-2411-4/+9
| | | | | | | - make toe module build dependent on kernel support Submitted by: Chelsio Inc. MFC after: 1 week
* Update cxgb include paths to not require prefixing with dev/cxgbkmacy2008-09-2344-352/+102
| | | | Submitted by: Chelsio Inc.
* Allow cxgb to be unified across versions by making newer features conditionalkmacy2008-09-238-6/+70
| | | | | Submitted by: Chelsio Inc MFC after: 3 days
* - Fix flag checkkmacy2008-09-231-3/+7
| | | | | - Fix adaptive thread sleep - set oactive when queue is full
* - Track number of times that the transmit queue overflowedkmacy2008-09-231-4/+3
| | | | | | - Trivial whitespace cleanup MFC after: 3 days
* Fix issue with tom loading by moving cxgb_log_tcb in to tomkmacy2008-09-193-1/+30
| | | | MFC after: 3 days
* Fix two panics:kmacy2008-09-181-3/+4
| | | | | | | | | | 1. panic: rtalloc1_fib: bad fibnum 2. panic: Lock tcpinp not exclusively locked @ /usr/src/sys/netinet/in_pcb.c:1284 Submitted by: Chelsio Inc. MFC after: 3 days
* Remove the suser(9) interface from the kernel. It has been replaced fromattilio2008-09-171-2/+2
| | | | | | | | | | | | | | | | | years by the priv_check(9) interface and just very few places are left. Note that compatibility stub with older FreeBSD version (all above the 8 limit though) are left in order to reduce diffs against old versions. It is responsibility of the maintainers for any module, if they think it is the case, to axe out such cases. This patch breaks KPI so __FreeBSD_version will be bumped into a later commit. This patch needs to be credited 50-50 with rwatson@ as he found time to explain me how the priv_check() works in detail and to review patches. Tested by: Giovanni Trematerra <giovanni dot trematerra at gmail dot com> Reviewed by: rwatson
* Further whitespace and copyright cleanups to minimize thekmacy2008-09-164-5/+4
| | | | delta with RELENG_7.
* White space cleanups to bring closer to RELENG_7kmacy2008-09-168-16/+6
|
* Remove some dead code along with gratuitous differences between HEAD and 7kmacy2008-09-167-49/+13
|
* Fix issue with recovering from transient jumbo mbuf shortage.kmacy2008-09-093-28/+7
| | | | | Submitted by: Chelsio Inc. MFC after: 3 days
* New file missed vimagification.julian2008-09-031-1/+2
|
* Indicate at probe time if device can do offload and which revision it iskmacy2008-09-021-1/+4
| | | | MFC after: 3 days
* Import ioctl updates for latest rev of cxgbtoolkmacy2008-09-023-244/+247
| | | | | Obtained from: Chelsio Inc. MFC after: 3 days
* Don't check if an interface can do tcp offload if there are no offload ↵kmacy2008-09-011-0/+1
| | | | | | | devices registered on the system. Suggested by: rwatson MFC after: 3 days
OpenPOWER on IntegriCloud