summaryrefslogtreecommitdiff
path: root/sys/dev/sn
AgeCommit message (Collapse)Author
2019-05-17FCP-101: Remove sn(4).Brooks Davis
Relnotes: yes FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md Reviewed by: jhb, imp Differential Revision: https://reviews.freebsd.org/D20230 Notes: svn path=/head/; revision=347917
2018-10-25Deprecate a number of less used 10 and 10/100 Ethernet devices.Brooks Davis
The current deprecated list is: ae, bm, cs, de, dme, ed, ep, ex, fe, pcn, sf, sn, tl, tx, txp, vx, wb, xe The list as refined as part of FCP-0101. Per the FCP, devices may be removed from the deprecation list if enough users are found or they are converted to iflib. FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md Notes: svn path=/head/; revision=339703
2018-05-18ifnet: Replace if_addr_lock rwlock with epoch + mutexMatt Macy
Run on LLNW canaries and tested by pho@ gallatin: Using a 14-core, 28-HTT single socket E5-2697 v3 with a 40GbE MLX5 based ConnectX 4-LX NIC, I see an almost 12% improvement in received packet rate, and a larger improvement in bytes delivered all the way to userspace. When the host receiving 64 streams of netperf -H $DUT -t UDP_STREAM -- -m 1, I see, using nstat -I mce0 1 before the patch: InMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree 4.98 0.00 4.42 0.00 4235592 33 83.80 4720653 2149771 1235 247.32 4.73 0.00 4.20 0.00 4025260 33 82.99 4724900 2139833 1204 247.32 4.72 0.00 4.20 0.00 4035252 33 82.14 4719162 2132023 1264 247.32 4.71 0.00 4.21 0.00 4073206 33 83.68 4744973 2123317 1347 247.32 4.72 0.00 4.21 0.00 4061118 33 80.82 4713615 2188091 1490 247.32 4.72 0.00 4.21 0.00 4051675 33 85.29 4727399 2109011 1205 247.32 4.73 0.00 4.21 0.00 4039056 33 84.65 4724735 2102603 1053 247.32 After the patch InMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree 5.43 0.00 4.20 0.00 3313143 33 84.96 5434214 1900162 2656 245.51 5.43 0.00 4.20 0.00 3308527 33 85.24 5439695 1809382 2521 245.51 5.42 0.00 4.19 0.00 3316778 33 87.54 5416028 1805835 2256 245.51 5.42 0.00 4.19 0.00 3317673 33 90.44 5426044 1763056 2332 245.51 5.42 0.00 4.19 0.00 3314839 33 88.11 5435732 1792218 2499 245.52 5.44 0.00 4.19 0.00 3293228 33 91.84 5426301 1668597 2121 245.52 Similarly, netperf reports 230Mb/s before the patch, and 270Mb/s after the patch Reviewed by: gallatin Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15366 Notes: svn path=/head/; revision=333813
2017-11-27sys/dev: further adoption of SPDX licensing ID tags.Pedro F. Giffuni
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Notes: svn path=/head/; revision=326255
2017-02-20sys/dev: Replace zero with NULL for pointers.Pedro F. Giffuni
Makes things easier to read, plus architectures may set NULL to something different than zero. Found with: devel/coccinelle MFC after: 3 weeks Notes: svn path=/head/; revision=313982
2016-05-03sys/dev: minor spelling fixes.Pedro F. Giffuni
Most affect comments, very few have user-visible effects. Notes: svn path=/head/; revision=298955
2016-02-27Migrate many bus_alloc_resource() calls to bus_alloc_resource_anywhere().Justin Hibbits
Most calls to bus_alloc_resource() use "anywhere" as the range, with a given count. Migrate these to use the new bus_alloc_resource_anywhere() API. Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D5370 Notes: svn path=/head/; revision=296137
2016-02-01These files were getting sys/malloc.h and vm/uma.h with header pollutionGleb Smirnoff
via sys/mbuf.h Notes: svn path=/head/; revision=295126
2015-12-11Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO buildingWarner Losh
block. Use it in all the PNP drivers to export either the current PNP table. For uart, create a custom table and export it using MODULE_PNP_INFO since it's the only one that matches on function number. Differential Review: https://reviews.freebsd.org/D3461 Notes: svn path=/head/; revision=292079
2015-01-06In order to reduce use of M_EXT outside of the mbuf allocator andRobert Watson
socket-buffer implementations, introduce a return value for MCLGET() (and m_cljget() that underlies it) to allow the caller to avoid testing M_EXT itself. Update all callers to use the return value. With this change, very few network device drivers remain aware of M_EXT; the primary exceptions lie in mbuf-chain pretty printers for debugging, and in a few cases, custom mbuf and cluster allocation implementations. NB: This is a difficult-to-test change as it touches many drivers for which I don't have physical devices. Instead we've gone for intensive review, but further post-commit review would definitely be appreciated to spot errors where changes could not easily be made mechanically, but were largely mechanical in nature. Differential Revision: https://reviews.freebsd.org/D1440 Reviewed by: adrian, bz, gnn Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=276750
2014-09-19Mechanically convert to if_inc_counter().Gleb Smirnoff
Notes: svn path=/head/; revision=271849
2013-10-26Provide includes that are needed in these files, and before were readGleb Smirnoff
in implicitly via if.h -> if_var.h pollution. Sponsored by: Netflix Sponsored by: Nginx, Inc. Notes: svn path=/head/; revision=257179
2013-10-26The r48589 promised to remove implicit inclusion of if_var.h soon. PrepareGleb Smirnoff
to this event, adding if_var.h to files that do need it. Also, include all includes that now are included due to implicit pollution via if_var.h Sponsored by: Netflix Sponsored by: Nginx, Inc. Notes: svn path=/head/; revision=257176
2013-05-10Fxi a bunch of typos.Eitan Adler
PR: misc/174625 Submitted by: Jeremy Chadwick <jdc@koitsu.org> Notes: svn path=/head/; revision=250460
2012-12-04Mechanically substitute flags from historic mbuf allocator withGleb Smirnoff
malloc(9) flags in sys/dev. Notes: svn path=/head/; revision=243857
2012-01-07ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it againKevin Lo
Reviewed by: yongari Notes: svn path=/head/; revision=229767
2010-05-03Add new tunable 'net.link.ifqmaxlen' to set default send interfaceMaxim Sobolev
queue length. The default value for this parameter is 50, which is quite low for many of today's uses and the only way to modify this parameter right now is to edit if_var.h file. Also add read-only sysctl with the same name, so that it's possible to retrieve the current value. MFC after: 1 month Notes: svn path=/head/; revision=207554
2009-11-19- Add a private timer to drive the transmit watchdog instead of usingJohn Baldwin
if_watchdog and if_timer. - Fix some issues in detach for sn(4), ste(4), and ti(4). Primarily this means calling ether_ifdetach() before anything else. Notes: svn path=/head/; revision=199559
2009-11-17Use the bus_*() routines rather than bus_space_*() for register operations.John Baldwin
Notes: svn path=/head/; revision=199414
2009-06-26Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/Robert Watson
IF_ADDR_UNLOCK() across network device drivers when accessing the per-interface multicast address list, if_multiaddrs. This will allow us to change the locking strategy without affecting our driver programming interface or binary interface. For two wireless drivers, remove unnecessary locking, since they don't actually access the multicast address list. Approved by: re (kib) MFC after: 6 weeks Notes: svn path=/head/; revision=195049
2007-02-23o break newbus api: add a new argument of type driver_filter_t toPaolo Pisati
bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@ Notes: svn path=/head/; revision=166901
2006-02-04Fix mismerge after last cvs update for the IFQ_DRV_DEQUEUE changes.Warner Losh
Notes: svn path=/head/; revision=155283
2006-02-04Remove ifdef notyet for SIOCGHWADDRWarner Losh
Treat SIOCADDMULTI and SIOCDELMULTI the same, since they had the same code Remove redundant assignment to error Convert to using the altq interface completely. Notes: svn path=/head/; revision=155280
2006-01-07While reviewing if_sn in an attempt to understand network driversWarner Losh
better, I discovered sn doing too many pointer dereferences. This driver would do silly things like: sn_foo(struct ifnet *ifp) { struct sn_softc *sc = ifp->if_softc; sc->ifp->mumble /* Other stuff */ } while /* other stuff */ usually needed sc, the extra deref isn't needed. Eliminate a few dozen of them. Notes: svn path=/head/; revision=154100
2005-09-22Eliminate dead codeWarner Losh
Notes: svn path=/head/; revision=150459
2005-09-19Make sure that we call if_free(ifp) after bus_teardown_intr. Since weWarner Losh
could get an interrupt after we free the ifp, and the interrupt handler depended on the ifp being still alive, this could, in theory, cause a crash. Eliminate this possibility by moving the if_free to after the bus_teardown_intr() call. Notes: svn path=/head/; revision=150306
2005-09-15Spell "destroy" correctly.Ruslan Ermilov
Notes: svn path=/head/; revision=150183
2005-09-13Use new convenience function to read CIS rather than the older, harder toWarner Losh
use version. Notes: svn path=/head/; revision=150106
2005-08-15Some preliminary support for Megahertz XJEM and CCEM (same cards really)Warner Losh
combo cards. Notes: svn path=/head/; revision=149101
2005-08-15Diff reduction to my tree: commit the trivial part of efforts to addWarner Losh
support for the really old Megahertz ethernet/modem combo cards. Notes: svn path=/head/; revision=149095
2005-08-09Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE andRobert Watson
IFF_DRV_RUNNING, as well as the move from ifnet.if_flags to ifnet.if_drv_flags. Device drivers are now responsible for synchronizing access to these flags, as they are in if_drv_flags. This helps prevent races between the network stack and device driver in maintaining the interface flags field. Many __FreeBSD__ and __FreeBSD_version checks maintained and continued; some less so. Reviewed by: pjd, bz MFC after: 7 days Notes: svn path=/head/; revision=148887
2005-08-03Modify device drivers supporting multicast addresses to lock if_addr_mtxRobert Watson
over iteration of their multicast address lists when synchronizing the hardware address filter with the network stack-maintained list. Problem reported by: Ed Maste (emaste at phaedrus dot sandvine dot ca> MFC after: 1 week Notes: svn path=/head/; revision=148654
2005-07-18Better name for type 4 chipsWarner Losh
Notes: svn path=/head/; revision=148144
2005-07-13Comment out a few entries in the sn_pccard_products table untilWarner Losh
support for them can really be added. Eliminate the check for network card, because many of the cards in the commented out section are combo cards and report themselves as either multifunction or modem. They will be added back as I obtain hardware and test them more fully. Notes: svn path=/head/; revision=147957
2005-07-13Commit firmware that the xilinx on the Ositech Seven of Diamonds and aWarner Losh
few other cards need. This firmware was obtained from the Linux pcmica-cs project, but Ositech Communications, Inc has been kind enough to grant permission to change the license to a pure BSDL type. Notes: svn path=/head/; revision=147955
2005-07-10Add a boatload of new device ids, gleaned from the pcmcia-cs-3.2.8Warner Losh
distribution. Add the appropriate devices to the man pages. Obtained from: pcmcia-cs Approved by: re (scottl) Notes: svn path=/head/; revision=147872
2005-07-09Fix the build. The SMC_8020BT define doesn't exist yet.Scott Long
Approved by: re (implicit) Notes: svn path=/head/; revision=147850
2005-07-09Noticed that NetBSD's sm driver has the PSION GOLDCARD listed, so listWarner Losh
that since I can't test it directly. The driver also lists the EM1144 as being supported, but in reality it isn't. The EM1144-T, {XJ,CC}{3288,3336} have the SMC chips in them, but aren't conformant MFC cards, so they need their own driver. Also, it does little harm to list the 8020BT, so remove #if 0. Approved by: re (scottl) Notes: svn path=/head/; revision=147847
2005-07-06Add support for Farallon EtherMAC PC Card.Warner Losh
Move ethernet MAC address setting into pccard attachment Fix panic from IFP2ENADDR() use prior to if_alloc Remove OLDCARD compat support. This should work still on oldcard, however. sn_attach now requires that the resources be activated now, so adjust. Approved by: re (scottl) Notes: svn path=/head/; revision=147797
2005-06-24Eliminate unused argument in PCMCIA_CARD macro.Warner Losh
Provide a backwards compatible way to have the extra macro by defining PCCARD_API_LEVEL 5 before including pccarddevs for driver writers that want/need to have the same driver on 5 and 6 with pccard attachments. Approved by: re (dwhite) Notes: svn path=/head/; revision=147580
2005-06-10Stop embedding struct ifnet at the top of driver softcs. Instead theBrooks Davis
struct ifnet or the layer 2 common structure it was embedded in have been replaced with a struct ifnet pointer to be filled by a call to the new function, if_alloc(). The layer 2 common structure is also allocated via if_alloc() based on the interface type. It is hung off the new struct ifnet member, if_l2com. This change removes the size of these structures from the kernel ABI and will allow us to better manage them as interfaces come and go. Other changes of note: - Struct arpcom is no longer referenced in normal interface code. Instead the Ethernet address is accessed via the IFP2ENADDR() macro. To enforce this ac_enaddr has been renamed to _ac_enaddr. - The second argument to ether_ifattach is now always the mac address from driver private storage rather than sometimes being ac_enaddr. Reviewed by: sobomax, sam Notes: svn path=/head/; revision=147256
2005-01-20Only attach to network functions. I'm not aware of any multifunctionWarner Losh
(pccard sense) sn based cards, but this won't hurt. The pseudo-multifunction cards need a special driver anyway... Notes: svn path=/head/; revision=140525
2005-01-06Start each of the license/copyright comments with /*-, minor shuffle of linesWarner Losh
Notes: svn path=/head/; revision=139749
2004-06-09Replace handrolled CRC calculation with ether_crc32_[lb]e().Christian Weisgerber
Notes: svn path=/head/; revision=130270
2004-05-30Add missing <sys/module.h> includesPoul-Henning Kamp
Notes: svn path=/head/; revision=129879
2004-05-28Include required machine/bus.hWarner Losh
Notes: svn path=/head/; revision=129798
2004-05-27Fix disordering of pccarddevs.h noticed by bde. Also remove a fewWarner Losh
redundant includes and fix some of the include disordering. Submitted by: bde Notes: svn path=/head/; revision=129764
2004-05-26Move to generating pccarddevs.h on the fly, both for the kernel andWarner Losh
the modules. Also generate usbdevs.h automatically now, but a non-kernel file is stopping that at the moment. Notes: svn path=/head/; revision=129740
2004-05-23We don't need to initialize if_output, ether_ifattach() does itMaxime Henrion
for us. Notes: svn path=/head/; revision=129616
2004-05-08It turns out that the module dependency on pccard is in error. SinceWarner Losh
there's not dependencies on pccard symboles, such a dependency is not necessary. This means that drivers that have multiple attachments can not drag bogus devices into the kernel at load time. We can't (yet) do this with pci and isa. Drivers written for them actually do seem to have symbols that depend on these busses' implementation code. ndis not touched until other things can be tested. Notes: svn path=/head/; revision=129046