aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/em
Commit message (Collapse)AuthorAgeFilesLines
* This patch redesigns the watchdog timer. The old version had SMPJack F Vogel2006-11-102-90/+308
| | | | | | | | | | | vulnerabilities. It also has the FAST_INTR code as a compile option. Submitted by: jfv Reviewed by: scottl Approved by: re, scottl Notes: svn path=/stable/6/; revision=164143
* Replace the 82542 device id by popular demand.Jack F Vogel2006-10-291-0/+2
| | | | | | | Approved by: re Notes: svn path=/stable/6/; revision=163751
* Merge of Intel 6.2.9 em driver code.Jack F Vogel2006-10-285-1391/+1544
| | | | | | | Approved by: re, scottl, jhb, pdeuskar Notes: svn path=/stable/6/; revision=163725
* Merge a bunch of changes from HEAD. The most significant are:Gleb Smirnoff2006-08-254-117/+176
| | | | | | | | | - 6.1.4 driver merge - Fix RX path under mbuf shortage conditions - Fix TX path under mbuf shortage conditions Notes: svn path=/stable/6/; revision=161613
* Sync with HEAD, merging vendor drivers updates 5.1.5, 6.0.5 by Jack Vogel.Gleb Smirnoff2006-08-086-1131/+4123
| | | | Notes: svn path=/stable/6/; revision=161083
* Sync with HEAD. This includes the following changes in chronologicalGleb Smirnoff2006-08-081-1443/+1587
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | order: o A significant performance improvements. The interrupt handler schedules work to a private taskqueue. The em_rxeof() function runs lockless. Rev. 1.98 - 1.101 by scottl. Rev. 1.103 by mux Rev. 1.106 by glebius, from Andrey V. Elsukov <bu7cher yandex.ru> Rev. 1.116 by glebius o Style cleanups: - Rev. 1.102, 1.108, 1.109 by glebius - Rev. 1.124 by pdeuskar o Vendor merges: - Merged with vendor driver version 5.1.5 by Jack Vogel. Rev. 1.115 by glebius - Merged with vendor driver version 6.0.5 by Jack Vogel. Rev. 1.123 by glebius o Various fixes: - Invalid use of BUS_DMA_ALLOCNOW Rev. 1.104 by scott, 1.121 by yongari - Link state handling cleanup. Rev. 1.110 by glebius - Fix if_baudrate handling. Rev. 1.111 by glebius - Honor IFF_DRV_OACTIVE in em_start_locked(). Rev. 1.117 by yongari - Protect EEPROM access with the driver lock. Rev. 1.118 by yongari - Fix link flap on SIOCGIFADDR. Rev. 1.119 by yongari - Fix DMA map handling in em_encap(). Rev. 1.120,1.122 by yongari Notes: svn path=/stable/6/; revision=161082
* MFC if_em.c, 1.92 to RELENG_6:Pyun YongHyeon2006-05-191-11/+60
| | | | | | | | | Add jumbo frame support for architectures with strict alignment. Requested by: wilko Notes: svn path=/stable/6/; revision=158741
* MFC 1.111:Gleb Smirnoff2006-03-181-2/+2
| | | | | | | | | Set ifp->if_baudrate according to current speed. Approved by: re (mux) Notes: svn path=/stable/6/; revision=156855
* MFC 1.107:Gleb Smirnoff2006-02-161-2/+2
| | | | | | | | | | | | | | | | Fix two important typos in watchdog handling: - Restart watchdog if we *did* processed any descriptors. [1] - Log the watchdog event if the link is *up*. [2] PR: kern/92948 [1] Submitted by: Mihail Balikov <mihail.balikov interbgc.com> [1] PR: kern/92895 [2] Submitted by: Vladimir Ivanov <wawa yandex-team.ru> [2] Approved by: re (kensmith) Notes: svn path=/stable/6/; revision=155754
* MFC: PCIR_CARDBUSCIS -> PCIR_CISWarner Losh2006-01-291-2/+2
| | | | Notes: svn path=/stable/6/; revision=155014
* - Restore VLAN_INPUT_TAG() macro to preserve API compatibility forGleb Smirnoff2006-01-131-1/+1
| | | | | | | | | third party drivers. - Fix bugs destribed in previous revision using macro with another name. Notes: svn path=/stable/6/; revision=154307
* MFC:Gleb Smirnoff2006-01-131-3/+1
| | | | | | | | | | | | | | - Use VLAN_TAG_VALUE() not only to read a dot1q tag value from an m_tag, but also to set it. This reduces complex code duplication and improves its readability. - Fix VLAN_INPUT_TAG() macro, so that it doesn't touch mtag in case if memory allocation failed. - Remove fourth argument from VLAN_INPUT_TAG(), that was used incorrectly in almost all drivers. Indicate failure with mbuf value of NULL. Notes: svn path=/stable/6/; revision=154298
* MFC 1.93 - 1.97, fixing suspend/resume on some laptops.Gleb Smirnoff2006-01-101-0/+45
| | | | | | | PR: kern/89825 Notes: svn path=/stable/6/; revision=154171
* MFC 1.91:Gleb Smirnoff2005-12-081-1/+4
| | | | | | | | | | On the 82571 and newer chipset the ICR register is meaningful only if the E1000_ICR_INT_ASSERTED bit is set. Submitted by: Jack Vogel Notes: svn path=/stable/6/; revision=153237
* Sync em(4) driver with HEAD, merging the following changes:Gleb Smirnoff2005-11-255-329/+751
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | revision 1.83 date: 2005/11/09 08:43:18; author: yongari; state: Exp; lines: +41 -38 Make em(4) work on big-endian architectures. - disable jumbo frame support on strict alignment architectures due to the limitation of hardware. The driver needs a fix-up code for RX side. The fix will show up in near future. - fix endian issue for 82544 on PCI-X bus. I couldn't test this as I don't have the NIC/hardware. - prefer PCIR_BAR to hardcoded EM_MMBA. - Properly checks for for 64bit BAR [1] - replace inl/outl with bus_space(9) [1] - fix endian issue on VLAN handling. - reorder header files and remove unnecessary one. Reviewed by: cognet No response from: pdeuskar, tackerman Obtained from: OpenBSD [1] revision 1.84 date: 2005/11/09 15:23:54; author: glebius; state: Exp; lines: +7 -3 - Introduce two more stat counters, counting number of RX overruns and number of watchdog timeouts. - Do not log(9) RX overrun events, since this pessimizes things under load [1]. - Do not increase if->if_oerrors in em_watchdog(), since this leads to counter slipping back, when if->if_oerrors is recalculated in em_update_stats_counters(). Instead increase watchdog counter in em_watchdog() and take it into account in em_update_stats_counters(). revision 1.86 date: 2005/11/11 16:04:51; author: ru; state: Exp; lines: +1 -1 - Store pointer to the link-level address right in "struct ifnet" rather than in ifindex_table[]; all (except one) accesses are through ifp anyway. IF_LLADDR() works faster, and all (except one) ifaddr_byindex() users were converted to use ifp->if_addr. - Stop storing a (pointer to) Ethernet address in "struct arpcom", and drop the IFP2ENADDR() macro; all users have been converted to use IF_LLADDR() instead. revisions 1.85, 1.87 - Introduce tunables em.hw.txd and em.hw.rxd, which allow administrator to configure number of transmit and receive descriptors. - Check em.hw.txd and em.hw.rxd against hardware limits [*] and require them to be multiple of 128. revision 1.88 date: 2005/11/21 04:17:43; author: yongari; state: Exp; lines: +121 -83 busdma cleanup for em(4). - don't force busdma to pre-allocate bounce pages for parent tag. - use system supplied roundup2 macro instead of rolling its own version. - TX/RX decriptor length should be multiple of 128. There is no no need to expand the size with the multiple of 4096. - don't create/destroy DMA maps in TX/RX handlers. Use pre-allocated DMA maps. Since creating DMA maps on sparc64 is time consuming operations(resource mananger overhead), this change should boost performance on sparc64. I could get > 2x speedup on Ultra60. - TX/RX descriptors could be aligned on 128 boundary. Aligning them on PAGE_SIZE is waste of resource. - don't blindly create TX DMA tag with size of MCLBYTES * 8. The size is only valid under jumbo frame environments. Instead of using the hardcoded value, re-compute necessary size on the fly. - RX side bus_dmamap_load_mbuf_sg(9) support. - remove unused macro EM_ROUNDUP and constant EM_MMBA. Reviewed by: scottl Tested by: glebius revision 1.89 date: 2005/11/24 01:44:48; author: glebius; state: Exp; lines: +131 -77 Merge in new driver version from Intel - 3.2.18. The most important change is support for adapters based on 82571 and 82572 chips. Tested on: 82547EI on i386 Tested on: 82540EM on sparc64 revision 1.90 date: 2005/11/24 15:13:47; author: cognet; state: Exp; lines: +3 -1 Remember the bus_dmamap_t where we loaded the mbuf, and sync this map instead of tx_buffer->map, or we could end up syncing the wrong map. Notes: svn path=/stable/6/; revision=152789
* Merge if_em.c:1.82 from HEAD to RELENG_6:Robert Watson2005-11-141-10/+14
| | | | | | | | | | | | Put probe-time printf of adapter speed and duplex behind bootverbose: since the link takes a bit to negotiate, the information is pretty much never available during the probe. As such, the boot output pretty much always prints N/A for speed and duplex. Since we print out the output of ifconfig during the user space boot, this early boot information is also generally redundant, and added to the noise. Notes: svn path=/stable/6/; revision=152408
* Sync with HEAD. Revisions merged:Gleb Smirnoff2005-10-223-169/+74
| | | | | | | | | | | | | | | | | | | | | | | - rev. 1.76. Removed FreeBSD 4.x code. - rev. 1.77, 1.79. Together with rev. 1.71 (already merged) this fixes problems when some code is executed in driver when em_process_receive_interrupts() drops lock. This can occur at runtime, when polling(4) mode is changed to interrupt driver or vise versa, but more likely this can happen when administrator issues some ifconfig commands. - rev. 1.78. In em_process_receive_interrupts(), call bus_dmamap_sync() for the descriptors set each time we modify one descriptor, instead of doing it only at the function exit. - rev. 1.80. Loop in em_intr() until interrupt cause register is clear, don't mask overrun interrupt. - rev. 1.81. Several locking and other fixes. See particular revision logs for more detailed information. Approved by: re Notes: svn path=/stable/6/; revision=151561
* Big overall MFC of polling(4) cleanup:Gleb Smirnoff2005-10-071-31/+40
| | | | | | | | | | | | | | | | | | | | | | | o First attempt on removing Giant from polling. Details: http://lists.freebsd.org/pipermail/cvs-src/2005-September/051848.html o Second attempt, and big polling cleanup including: - Functinal approach to turning polling on/off - Deprecating of poll_in_trap - Removal of ifnet knowledge from kern_poll.c Details: http://lists.freebsd.org/pipermail/cvs-src/2005-October/053267.html o Improved checking of user configurable sysctls. Details: http://lists.freebsd.org/pipermail/cvs-src/2005-October/053351.html o Moving DEVICE_POLLING from opt_global.h to opt_device_polling.h: http://lists.freebsd.org/pipermail/cvs-src/2005-October/053479.html o All related documentation fixes. Approved by: re (kensmith) Thanks to: everyone, who helped with testing Notes: svn path=/stable/6/; revision=151061
* MFC 1.73:Gleb Smirnoff2005-10-041-2/+4
| | | | | | | | | | | | | In em_process_receive_interrupts() store and clear adapter->fmt. This make function reenterable. In the runtime the race is masked by serializing of em_process_receive_interrupts() either by interrupt thread, or by polling. The race can be triggered when polling is switched on or off. Approved by: re (scottl) Notes: svn path=/stable/6/; revision=150911
* MFC 1.71, 1.72:Gleb Smirnoff2005-09-261-1/+2
| | | | | | | | | Check IFF_DRV_RUNNING before calling em_start_locked(). Approved by: re (scottl) Notes: svn path=/stable/6/; revision=150570
* Merge linux_ioctl.c:1.128 svr4_sockio.c:1.17 altq_cbq.c:1.3 if_oltr.c:1.38Robert Watson2005-08-251-17/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if_pflog.c:1.14 if_pfsync.c:1.21 if_an.c:1.70 if_ar.c:1.72 if_arl.c:1.11 amrr.c:1.10 onoe.c:1.10 if_ath.c:1.101 awi.c:1.41 if_bfe.c:1.27 if_bge.c:1.93 if_cm_isa.c:1.7 smc90cx6.c:1.16 if_cnw.c:1.20 if_cp.c:1.25 if_cs.c:1.42 if_ct.c:1.26 if_cx.c:1.46 if_ed.c:1.256 if_em.c:1.68 if_en_pci.c:1.37 midway.c:1.66 if_ep.c:1.143 if_ex.c:1.58 if_fatm.c:1.20 if_fe.c:1.93 if_fwe.c:1.38 if_fwip.c:1.8 if_fxp.c:1.244 if_gem.c:1.33 if_hatm.c:1.25 if_hatm_intr.c:1.20 if_hatm_ioctl.c:1.13 if_hatm_rx.c:1.10 if_hatm_tx.c:1.14 if_hme.c:1.39 if_ie.c:1.104 if_ndis.c:1.101 if_ic.c:1.24 if_ipw.c:1.10 if_iwi.c:1.10 if_ixgb.c:1.13 if_lge.c:1.41 if_lnc.c:1.113 if_my.c:1.31 if_nge.c:1.77 if_nve.c:1.10 if_owi.c:1.12 if_patm.c:1.9 if_patm_intr.c:1.6 if_patm_ioctl.c:1.10 if_patm_tx.c:1.10 pdq_ifsubr.c:1.28 if_plip.c:1.38 if_ral.c:1.12 if_ral_pci.c:1.2 if_ray.c:1.81 if_rayvar.h:1.22 if_re.c:1.49 if_sbni.c:1.21 if_sbsh.c:1.14 if_sn.c:1.48 dp83932.c:1.21 if_snc_pccard.c:1.9 if_sr.c:1.70 if_tx.c:1.91 if_txp.c:1.33 if_aue.c:1.92 if_axe.c:1.32 if_cdce.c:1.8 if_cue.c:1.59 if_kue.c:1.66 if_rue.c:1.23 if_udav.c:1.16 if_ural.c:1.12 if_vge.c:1.16 if_vx.c:1.58 if_wi.c:1.185 if_wi_pci.c:1.26 if_wl.c:1.68 if_xe.c:1.60 if_xe_pccard.c:1.30 if_el.c:1.68 i4b_ipr.c:1.35 i4b_isppp.c:1.31 kern_poll.c:1.20 bridge.c:1.94 bridgestp.c:1.4 if_arcsubr.c:1.27 if_atm.h:1.24 if_atmsubr.c:1.40 if_bridge.c:1.16 if_ef.c:1.35 if_ethersubr.c:1.196 if_faith.c:1.37 if_fddisubr.c:1.100 if_fwsubr.c:1.14 if_gif.c:1.54 if_gre.c:1.34 if_iso88025subr.c:1.70 if_loop.c:1.107 if_ppp.c:1.106 if_spppsubr.c:1.121 if_tap.c:1.57 if_tun.c:1.154 if_vlan.c:1.80 ppp_tty.c:1.67 ieee80211_ioctl.c:1.32 atm_if.c:1.31 ng_eiface.c:1.33 ng_ether.c:1.50 ng_fec.c:1.19 ng_iface.c:1.44 ng_sppp.c:1.9 ip_carp.c:1.30 ip_fastfwd.c:1.30 in6.c:1.53 nd6_nbr.c:1.31 natm.c:1.40 if_dc.c:1.162 if_de.c:1.168 if_pcn.c:1.72 if_rl.c:1.154 if_sf.c:1.84 if_sis.c:1.135 if_sk.c:1.108 if_ste.c:1.86 if_ti.c:1.109 if_tl.c:1.101 if_vr.c:1.106 if_wb.c:1.81 if_xl.c:1.194 from HEAD to RELENG_6: Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 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 Approved by: re (scottl) Notes: svn path=/stable/6/; revision=149443
* Merge if_ath.c:1.99 awi.c:1.39 if_bfe.c:1.26 if_bge.c:1.92 if_ed.c:1.255Robert Watson2005-08-241-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | if_em.c:1.67 if_ex.c:1.57 if_fe.c:1.92 if_fxp.c:1.242 if_gem.c:1.32 if_hme.c:1.38 if_ie.c:1.103 if_ndis.c:1.100 if_ixgb.c:1.12 if_lge.c:1.40 if_lnc.c:1.112 if_my.c:1.30 if_nge.c:1.76 if_nve.c:1.9 if_owi.c:1.11 pdq_ifsubr.c:1.27 if_ray.c:1.80 if_re.c:1.47 if_sn.c:1.47 dp83932.c:1.20 if_tx.c:1.90 if_txp.c:1.32 if_aue.c:1.91 if_axe.c:1.31 if_cue.c:1.58 if_kue.c:1.65 if_rue.c:1.22 if_udav.c:1.15 if_vge.c:1.15 if_wi.c:1.182 if_wl.c:1.67 if_xe.c:1.58 if_dc.c:1.161 if_de.c:1.167 if_pcn.c:1.70 if_rl.c:1.153 if_sf.c:1.83 if_sis.c:1.134 if_sk.c:1.107 if_ste.c:1.85 if_ti.c:1.108 if_tl.c:1.100 if_vr.c:1.105 if_wb.c:1.80 if_xl.c:1.193 from HEAD to RELENG_6: Modify device drivers supporting multicast addresses to lock if_addr_mtx 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> Approved by: re (scottl) Notes: svn path=/stable/6/; revision=149422
* Correct a minor typo.Xin LI2005-07-111-1/+1
| | | | | | | | Pointed out by: Xuefeng DENG <dengxf at dengh com> Approved by: re (scottl) Notes: svn path=/head/; revision=147890
* Stop embedding struct ifnet at the top of driver softcs. Instead theBrooks Davis2005-06-102-24/+24
| | | | | | | | | | | | | | | | | | | | | | | 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
* Latest README to correspond to latest Intel version 2.1.7Tony Ackerman2005-05-261-143/+124
| | | | Notes: svn path=/head/; revision=146663
* Changes to update driver with latest Intel driver version 2.1.7Tony Ackerman2005-05-265-529/+2504
| | | | | | | | | | | | | | - Changed from using explicit devices id to using descriptive labels. - Added support for 82573 and 82546 Quad adapters. - Corrected support for 82547EI and 82541ER (mac_type was not assigned) - Removed #ifdef DBG_STATS and extraneous code. if_em_hw.c/if_em_hw.h - Added support for 82573 and 82546 Quad adapters. - Brought forward Intel's most current mac and phy changes. Notes: svn path=/head/; revision=146662
* Run em_local_timer() once per second instead of running it once per 2 seconds.Gleb Smirnoff2005-04-051-4/+4
| | | | | | | | | | This makes gathering of error stats more precise, and netstat(1) output look right. Reviewed by: tackerman Notes: svn path=/head/; revision=144652
* Use BUS_PROBE_DEFAULT for pci probe return valueWarner Losh2005-03-051-2/+2
| | | | Notes: svn path=/head/; revision=143161
* Call if_link_state_change() when link status changes.Gleb Smirnoff2005-02-041-0/+4
| | | | | | | | PR: kern/76890 Reviewed by: rwatson, sam Notes: svn path=/head/; revision=141298
* Respect the current setting of IFCAP_VLAN_HWTAGGING onYaroslav Tykhiy2005-01-261-5/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | the interface when going to toggle VLAN support for internal reasons. If the IFCAP_VLAN_HWTAGGING bit is cleared, we should rely on the (re)init routine to turn VLAN support off and never touch the relevant hardware bits. This applies to other capability bits, too. The user obviously has a reason for clearing a capability bit, e.g., if his particular NIC is buggy and hangs if a certain hardware capability is turned on even for a fraction of a second. The flag adapter->em_insert_vlan_header still is set or reset irrespective of the IFCAP_VLAN_HWTAGGING setting, as before, in order to handle the case when a user sets promiscuous mode on an interface first and later turns its IFCAP_VLAN_HWTAGGING bit on. This change might look orthogonal to rev#1.85, but in fact it is not. It introduces bugfixes that hopefully will make implementing the general scheme mentioned in the commit message of rev#1.85 easier. Notes: svn path=/head/; revision=140859
* Disable use of hardware VLAN tagging and stripping in if_em in the defaultRobert Watson2005-01-261-1/+1
| | | | | | | | | | | | | configuration: it appears to work properly in the non-promiscuous case, but we've not yet implemented a more general solution that maintains full functionality with promiscuous mode enabled. While my hope is that we can get one implemented soon, this will improve functionality substantially in the mean time. MFC after: 3 days Notes: svn path=/head/; revision=140857
* Convert if_em to the new bus_dmamap_load_sg() interface. The old callbackScott Long2005-01-152-39/+22
| | | | | | | was really just a waste of cycles, so this streamlines it considerably. Notes: svn path=/head/; revision=140318
* Start each of the license/copyright comments with /*-, minor shuffle of linesWarner Losh2005-01-061-0/+2
| | | | Notes: svn path=/head/; revision=139749
* Corrected a workaround that should only be applied to one adapter. WorkaroundTony Ackerman2005-01-011-2/+14
| | | | | | | | | was causing device hangs when incorrectly applied to other adapters. PR: kern/66634 Notes: svn path=/head/; revision=139549
* Added device id support for Intel 82541ER and 82546GB dual port PCIE adapter.Tony Ackerman2005-01-011-0/+2
| | | | | | | PR: None Notes: svn path=/head/; revision=139548
* Further refine the if_em vlan fix in if_em.c:1.53:Robert Watson2004-11-141-4/+19
| | | | | | | | | | | | | | | | - Because em_encap() can now fail in a way that leaves us without an mbuf chain, potentially set *m_headp to NULL if that happens, so that the caller can do the right thing. This case can occur when we try to prepend the vlan header mbuf but can't allocate additional memory. - Modify the caller of em_encap() to detect a NULL m_head and not try to queue the mbuf if that happens. - When em_encap() fails, make sure to call bus_dmamap_destroy() to clean up. Notes: svn path=/head/; revision=137700
* Correct a bug in the if_em driver relating to the use of vlans withRobert Watson2004-11-122-6/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | promiscuous mode introduced in 1.45, which programs the em card not to strip or prepend tags when in promiscuous mode without also modifying behavior to manually prepend a vlan header in the event that the card isn't doing it on transmit. Due to a feature of card operation, if the global VLAN prepend/strip register isn't set, setting the VLAN tag flag on individual packet descriptors will cause the packet to be transmitted using ISL encapsulation rather than 802.1Q VLAN encapsulation. This fix causes em_encap() to prepend the header by tracking whether the card is configured to temporarily disable prepending/stripping due to promiscuous mode. As a result, entering promiscuous mode on the parent em interface no longer causes vlans to appear to "wedge" or transmit ISL-encapsulated frames, which typically will not be configured/spoken by the other endpoints on the VLAN trunk. This bug may also exist in other drivers, and the additional vlan encapsulation logic should be abstracted and centralized in if_vlan.c if so. RELENG_5_3 candidate. MFC after: 1 week Tested by: pjd, rwatson Reported by: astesin at ukrtelecom dot net Reported by: Mike Tancsa <mike at sentex dot net> Reported by: Iasen Kostov <tbyte at OTEL dot net> Notes: svn path=/head/; revision=137609
* Unbreak the build.Dag-Erling Smørgrav2004-11-111-0/+1
| | | | | | | Pointy hat to: bms Notes: svn path=/head/; revision=137583
* Remove now-unused sysctl members.Bruce M Simpson2004-11-111-4/+0
| | | | Notes: svn path=/head/; revision=137576
* Move per-instance sysctls under the per-device-instance tree.Bruce M Simpson2004-11-111-23/+6
| | | | | | | | Reviewed by: mux Prodded by: rwatson Notes: svn path=/head/; revision=137575
* Put the "Link is up/down" printfs behind bootverbose. gigE is not so uncommonPoul-Henning Kamp2004-11-031-6/+8
| | | | | | | | that we need to tell people about every cable in the network anymore. It can be enabled for debugging purposes with "boot -v". Notes: svn path=/head/; revision=137155
* Add missing bus_dmamap_sync() calls. If you are using an architectureMaxime Henrion2004-10-191-2/+12
| | | | | | | | | | | | | | with a weak memory model or x86 + PAE (or more specifically, your driver is using bounce pages) and you have had problems with em(4), this may fix it. At least this is needed to have em(4) work properly on FreeBSD/arm. Original version by: cognet Reviewed by: tackerman Tested by: cognet Notes: svn path=/head/; revision=136718
* Use an alignment of 1 instead of PAGE_SIZE for the rx and tx buffer tags.Scott Long2004-10-191-12/+2
| | | | | | | | | | | | | Since the e1000 DMA engines hava no constraints on the alignment of buffer transfers, there is no reason to tell busdma that there is. This save a minimum of 1 malloc call per packet, which translates to eliminating 4 locks. It also means that buffers are not needlessly bounced when transfered. The end result is a 38% improvement in pps in a 4 way bridging environment. Obtained from: Sandvine, Inc. Notes: svn path=/head/; revision=136685
* Don't count RNBC (internal buffer full) towards the RX error count since it'sScott Long2004-10-091-1/+1
| | | | | | | | | not really an error. Submitted by: Gerrit Nagelhout Notes: svn path=/head/; revision=136300
* Fix typeo. Should read ***!***IFQ_DRV_IS_EMPTY.Max Laier2004-09-291-1/+1
| | | | | | | | | | | This might fix some of the trouble around em(4) filling up its buffers. Submitted by: mtm Pointy hat to: mlaier MFC after: 2 days Notes: svn path=/head/; revision=135937
* Do not use the IO-mapping to issue the reset on the 82546 on arm. For someOlivier Houchard2004-09-231-0/+2
| | | | | | | reason, it results in corrupted descriptors. Notes: svn path=/head/; revision=135676
* Added support for Intel PRO/1000 GT Desktop Adapter(Device ID 8086 107C)Prafulla Deuskar2004-09-014-242/+448
| | | | | | | | | | | | | | Removed support for Intel 82541ER Added fix for 82547 which corrects an issue with Jumbo frames larger than 10k. Added fix for vlan tagged frames not being properly bridged. Corrected TBI workaround. Corrected incorrect LED operation issues Submitted by: tackerman (Tony Ackerman) MFC after: 2 weeks Notes: svn path=/head/; revision=134619
* Bring in the first chunk of altq driver modifications. This covers theMax Laier2004-07-021-6/+8
| | | | | | | | | | | | | | following drivers: bfe(4), em(4), fxp(4), lnc(4), tun(4), de(4) rl(4), sis(4) and xl(4) More patches are pending on: http://peoples.freebsd.org/~mlaier/ Please take a look and tell me if "your" driver is missing, so I can fix this. Tested-by: many No-objection: -current, -net Notes: svn path=/head/; revision=131455
* Implement support for controlling VLAN_HWTAGGING through ioctl(SIOCSIFCAP).Yaroslav Tykhiy2004-06-041-5/+13
| | | | | | | | | | This includes not only toggling the flag in if_capenable, but also really reconfiguring the hardware. Approved by: tackerman (as the em(4) maintainer) Notes: svn path=/head/; revision=130079
* Add missing <sys/module.h> includesPoul-Henning Kamp2004-05-301-0/+1
| | | | Notes: svn path=/head/; revision=129879