#
13f4c340 |
| 09-Aug-2005 |
Robert Watson <rwatson@FreeBSD.org> |
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 synchron
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 MFC after: 7 days
show more ...
|
#
09df718e |
| 02-Aug-2005 |
Robert Watson <rwatson@FreeBSD.org> |
When allocating link layer ifnet address list entries in ifp->if_resolvemulti(), do so with M_NOWAIT rather than M_WAITOK, so that a mutex can be held over the call. In the FDDI code, add a missing
When allocating link layer ifnet address list entries in ifp->if_resolvemulti(), do so with M_NOWAIT rather than M_WAITOK, so that a mutex can be held over the call. In the FDDI code, add a missing M_ZERO. Consumers are already aware that if_resolvemulti() can fail.
MFC after: 1 week
show more ...
|
#
514bcb89 |
| 21-Jul-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Add some KASSERTS to catch null pointers.
|
#
fc74a9f9 |
| 10-Jun-2005 |
Brooks Davis <brooks@FreeBSD.org> |
Stop embedding struct ifnet at the top of driver softcs. Instead the 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 c
Stop embedding struct ifnet at the top of driver softcs. Instead the 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
show more ...
|
#
c8b01292 |
| 10-Jun-2005 |
Andrew Thompson <thompsa@FreeBSD.org> |
Add dummynet(4) support to if_bridge, this code is largely based on bridge.c.
This is the final piece to match bridge.c in functionality, we can now be a drop-in replacement.
Approved by: mlaier (m
Add dummynet(4) support to if_bridge, this code is largely based on bridge.c.
This is the final piece to match bridge.c in functionality, we can now be a drop-in replacement.
Approved by: mlaier (mentor)
show more ...
|
#
5a6530a3 |
| 05-Jun-2005 |
Andrew Thompson <thompsa@FreeBSD.org> |
Fix indentation of two comment blocks from the last commit.
Approved by: mlaier (mentor)
|
#
8f867517 |
| 05-Jun-2005 |
Andrew Thompson <thompsa@FreeBSD.org> |
Add hooks into the networking layer to support if_bridge. This changes struct ifnet so a buildworld is necessary.
Approved by: mlaier (mentor) Obtained from: NetBSD
|
Revision tags: release/5.4.0_cvs, release/5.4.0 |
|
#
a1026028 |
| 06-Mar-2005 |
Maxim Sobolev <sobomax@FreeBSD.org> |
Fix ef(4) driver when kernel compiled w/o IPX.
MFC after: 3 days
|
#
58996b13 |
| 24-Feb-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Fix long lines in comment introduced in previous commit.
|
#
7e2041e0 |
| 22-Feb-2005 |
Robert Watson <rwatson@FreeBSD.org> |
When prepending an LCC SNAP header to an atalk outgoing ethernet packet, allocate the additional mbuf (if needed) using a non-sleeping memory allocation.
MFC after: 7 days
|
#
a9771948 |
| 22-Feb-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Add CARP (Common Address Redundancy Protocol), which allows multiple hosts to share an IP address, providing high availability and load balancing.
Original work on CARP done by Michael Shalayeff, wi
Add CARP (Common Address Redundancy Protocol), which allows multiple hosts to share an IP address, providing high availability and load balancing.
Original work on CARP done by Michael Shalayeff, with many additions by Marco Pfatschbacher and Ryan McBride.
FreeBSD port done solely by Max Laier.
Patch by: mlaier Obtained from: OpenBSD (mickey, mcbride)
show more ...
|
#
6ee20ab5 |
| 18-Feb-2005 |
Ruslan Ermilov <ru@FreeBSD.org> |
Allocate the M_VLANTAG m_pkthdr flag, and use it to indicate that a packet has VLAN mbuf tag attached. This is faster to check than m_tag_locate(), and allows us to use the tags in non-vlan(4) VLAN
Allocate the M_VLANTAG m_pkthdr flag, and use it to indicate that a packet has VLAN mbuf tag attached. This is faster to check than m_tag_locate(), and allows us to use the tags in non-vlan(4) VLAN producers.
The first argument to VLAN_OUTPUT_TAG() is now unused but retained for backward compatibility.
While here, embellish a fix in rev. 1.174 of if_ethersubr.c -- it now checks for packets with VLAN (mbuf) tags, and it should now be possible to bridge(4) on vlan(4)'s whose parent interfaces support VLAN decapsulation in hardware.
Reviewed by: sam
show more ...
|
#
eb46c866 |
| 14-Feb-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Check for non-NULL ac_netgraph field in interface arpcom, instead of checking global presence of ng_ether(4).
Reviewed by: ru
|
#
6c23e6cc |
| 14-Feb-2005 |
Ruslan Ermilov <ru@FreeBSD.org> |
If no vlan(4) interfaces are configured for the interface, and the driver did VLAN decapsulation in hardware, we were passing a frame as if it came for the parent (non-VLAN) interface. Stop this fro
If no vlan(4) interfaces are configured for the interface, and the driver did VLAN decapsulation in hardware, we were passing a frame as if it came for the parent (non-VLAN) interface. Stop this from happening.
Reminded by: glebius Security: This could pose a security risk in some setups
show more ...
|
Revision tags: release/4.11.0_cvs, release/4.11.0 |
|
#
28935658 |
| 16-Jan-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
- Reduce number of arguments passed to dummynet_io(), we already have cookie in struct ip_fw_args itself. - Remove redundant &= 0xffff from dummynet_io().
|
#
6c69a7c3 |
| 14-Jan-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
o Clean up interface between ip_fw_chk() and its callers:
- ip_fw_chk() returns action as function return value. Field retval is removed from args structure. Action is not flag any more. It is one
o Clean up interface between ip_fw_chk() and its callers:
- ip_fw_chk() returns action as function return value. Field retval is removed from args structure. Action is not flag any more. It is one of integer constants. - Any action-specific cookies are returned either in new "cookie" field in args structure (dummynet, future netgraph glue), or in mbuf tag attached to packet (divert, tee, some future action).
o Convert parsing of return value from ip_fw_chk() in ipfw_check_{in,out}() to a switch structure, so that the functions are more readable, and a future actions can be added with less modifications.
Approved by: andre MFC after: 2 months
show more ...
|
#
c398230b |
| 07-Jan-2005 |
Warner Losh <imp@FreeBSD.org> |
/* -> /*- for license, minor formatting changes
|
Revision tags: release/5.3.0_cvs, release/5.3.0 |
|
#
a176c2ae |
| 12-Oct-2004 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Fix packet flow when both ng_ether(4) and bridge(4) are in use:
- push all bridge logic from if_ethersubr.c into bridge.c make bridge_in() return mbuf pointer (or NULL). - call only bridge_in() fr
Fix packet flow when both ng_ether(4) and bridge(4) are in use:
- push all bridge logic from if_ethersubr.c into bridge.c make bridge_in() return mbuf pointer (or NULL). - call only bridge_in() from ether_input(), after ng_ether_input() was optinally called. - call bridge_in() from ng_ether_rcv_upper().
Long description: http://lists.freebsd.org/mailman/htdig/freebsd-net/2004-May/003881.html Reported by: Jian-Wei Wang <jwwang at FreeBSD.csie.NCTU.edu.tw> Tested by: myself, Sergey Lyubka Reviewed by: sam Approved by: julian (mentor) MFC after: 2 months
show more ...
|
#
acf032f5 |
| 11-Oct-2004 |
Robert Watson <rwatson@FreeBSD.org> |
When harvesting entropy from an ethernet mbuf, do so before freeing the mbuf.
RELENG_5 candidate.
|
#
af5e59bf |
| 28-Jul-2004 |
Robert Watson <rwatson@FreeBSD.org> |
Add a new network interface flag, IFF_NEEDSGIANT, which will allow device drivers to declare that the ifp->if_start() method implemented by the driver requires Giant in order to operate correctly.
A
Add a new network interface flag, IFF_NEEDSGIANT, which will allow device drivers to declare that the ifp->if_start() method implemented by the driver requires Giant in order to operate correctly.
Add a 'struct task' to 'struct ifnet' that can be used to execute a deferred ifp->if_start() in the event that if_start needs to be called in a Giant-free environment. To do this, introduce if_start(), a wrapper function for ifp->if_start(). If the interface can run MPSAFE, it directly dispatches into the interface start routine. If it can't run MPSAFE, we're running with debug.mpsafenet != 0, and Giant isn't currently held, the task is queued to execute in a swi holding Giant via if_start_deferred().
Modify if_handoff() to use if_start() instead of direct dispatch. Modify 802.11 to use if_start() instead of direct dispatch.
This is intended to provide increased compatibility for non-MPSAFE network device drivers in the presence of Giant-free operation via asynchronous dispatch. However, this commit does not mark any network interfaces as IFF_NEEDSGIANT.
show more ...
|
#
086e98c4 |
| 09-Jul-2004 |
Bruce M Simpson <bms@FreeBSD.org> |
Use ETHER_IS_MULTICAST() consistently in ether_resolvemulti().
Reviewed by: jmallett
|
#
f93dfa28 |
| 02-Jul-2004 |
Brooks Davis <brooks@FreeBSD.org> |
Don't announce the ethernet address when it's 00:00:00:00:00:00. It's not of any interest. This primairly happens when vlan(4) interfaces are created.
|
#
cd0cd014 |
| 24-Jun-2004 |
Joerg Wunsch <joerg@FreeBSD.org> |
When considering an ethernet frame that is not destined for us, do not only allow this to be further processed when bridging is active on that interface, but also if the current packet has a VLAN tag
When considering an ethernet frame that is not destined for us, do not only allow this to be further processed when bridging is active on that interface, but also if the current packet has a VLAN tag and VLANs are active on our interface. This gives the VLAN layers a chance to also consider the packet (and perhaps drop it instead of the main dispatcher).
This fixes a situation where bridging was only active on VLAN interfaces but ether_demux() called on behalf of the main interface had already thrown the packet away.
MFC after: 4 weeks
show more ...
|
#
d7647d96 |
| 24-Jun-2004 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Make dependencies on the TCP/IP stack conditional on INET / INET6. This makes it possible to build a kernel with NIC drivers but no TCP/IP stack.
Sponsored by: Teleplan AS
|
#
affc907d |
| 16-Jun-2004 |
Max Laier <mlaier@FreeBSD.org> |
Replace IF_HANDOFF with new IFQ_HANDOFF to enqueue with ALTQ once enabled on the respective drivers.
|