Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3 |
|
#
c443c74f |
| 22-Oct-2019 |
zrj <rimvydas.jasinskas@gmail.com> |
<net/if_var.h>: Remove last explicit dependency on <sys/malloc.h>.
These kernel sources pass M_NOWAIT flag to m_copym() and friends. Mark that it was for M_NOWAIT visibility.
|
Revision tags: v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc, v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0, v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4 |
|
#
b5523eac |
| 19-Feb-2015 |
Sascha Wildner <saw@online.de> |
kernel: Move us to using M_NOWAIT and M_WAITOK for mbuf functions.
The main reason is that our having to use the MB_WAIT and MB_DONTWAIT flags was a recurring issue when porting drivers from FreeBSD
kernel: Move us to using M_NOWAIT and M_WAITOK for mbuf functions.
The main reason is that our having to use the MB_WAIT and MB_DONTWAIT flags was a recurring issue when porting drivers from FreeBSD because it tended to get forgotten and the code would compile anyway with the wrong constants. And since MB_WAIT and MB_DONTWAIT ended up as ocflags for an objcache_get() or objcache_reclaimlist call (which use M_WAITOK and M_NOWAIT), it was just one big converting back and forth with some sanitization in between.
This commit allows M_* again for the mbuf functions and keeps the sanitizing as it was before: when M_WAITOK is among the passed flags, objcache functions will be called with M_WAITOK and when it is absent, they will be called with M_NOWAIT. All other flags are scrubbed by the MB_OCFLAG() macro which does the same as the former MBTOM().
Approved-by: dillon
show more ...
|
Revision tags: v4.0.3, v4.0.2, v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2, v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1, v3.6.0 |
|
#
3a51da79 |
| 15-Nov-2013 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
bridge: Utilize lwkt_sendmsg_oncpu
|
Revision tags: v3.7.1, v3.6.0rc, v3.7.0, v3.4.3, v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0 |
|
#
6999cd81 |
| 26-Feb-2013 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Beef up lwkt_dropmsg() API and fix deadlock in so_async_rcvd*()
* Beef up the lwkt_dropmsg() API. The API now conditionally returns success (0) or an error (ENOENT).
* so_pru_rcvd_async
kernel - Beef up lwkt_dropmsg() API and fix deadlock in so_async_rcvd*()
* Beef up the lwkt_dropmsg() API. The API now conditionally returns success (0) or an error (ENOENT).
* so_pru_rcvd_async() improperly calls lwkt_sendmsg() with a spinlock held. This is not legal. Hack up lwkt_sendmsg() a bit to resolve.
show more ...
|
Revision tags: v3.2.2, v3.2.1, v3.2.0, v3.3.0, v3.0.3, v3.0.2, v3.0.1, v3.1.0, v3.0.0 |
|
#
86d7f5d3 |
| 26-Nov-2011 |
John Marino <draco@marino.st> |
Initial import of binutils 2.22 on the new vendor branch
Future versions of binutils will also reside on this branch rather than continuing to create new binutils branches for each new version.
|
Revision tags: v2.12.0, v2.13.0, v2.10.1, v2.11.0, v2.10.0, v2.9.1, v2.8.2, v2.8.1, v2.8.0, v2.9.0, v2.6.3, v2.7.3, v2.6.2, v2.7.2, v2.7.1, v2.6.1, v2.7.0, v2.6.0, v2.5.1, v2.4.1, v2.5.0, v2.4.0, v2.3.2, v2.3.1, v2.2.1 |
|
#
a3dd34d2 |
| 05-Apr-2009 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Split ifnet serialize step 1/many: Add if_{serialize,deserialize,tryserialize}() function pointers to ifnet.
These three function pointers accept ifnet struct and ifnet_serialize enumeration.
The i
Split ifnet serialize step 1/many: Add if_{serialize,deserialize,tryserialize}() function pointers to ifnet.
These three function pointers accept ifnet struct and ifnet_serialize enumeration.
The ifnet_serialize enumeration indicates the serialization type: IFNET_SERIALIZE_ALL: All of the serializers should be held. Except for if_start and if_input, this enumeration must be used when call ifnet function pointers. IFNET_SERIALIZE_TX: Only transmit serializer should be held. This enumeration could be used when calling ifnet.if_start. IFNET_SERIALIZE_RX: Only receive serializer should be held. This enumeration could be used when calling ifnet.if_input.
If the NIC driver does not set these three function pointer, then if_attach() will set them to the default ones: only one serializer (if_serializer) is used and ifnet_serialize parameter is ignored.
Following several inline functions are added which are sheer wrappers of the three ifnet serialize function pointers: ifnet_serialize_{all,tx,rx}() ifnet_deserialize_{all,tx,rx}() ifnet_tryserialize_{all,tx,rx}()
All of the protocol layers and most of the pseudo drivers are converted.
Discussed-with: dillon@
show more ...
|
Revision tags: v2.2.0, v2.3.0, v2.1.1 |
|
#
30ced003 |
| 26-Nov-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Proper handle flags passed to bridge_rtflush() and bridge_rtdelete(), instead of handle it as a boolean. - Add IFBF_FLUSHSYNC flag so bridge_rtflush() and bridge_rtdelete() could perform async
- Proper handle flags passed to bridge_rtflush() and bridge_rtdelete(), instead of handle it as a boolean. - Add IFBF_FLUSHSYNC flag so bridge_rtflush() and bridge_rtdelete() could perform async operation (used by STP code).
show more ...
|
#
b2417333 |
| 22-Nov-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
bstp_input() always returns NULL, so nuke its return value and let caller set m to NULL.
|
#
8f7b13ef |
| 21-Nov-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Parallelize bridge_input step 1.8/2: Parallelize bridge member interfaces list -- o Split bridge_iflist into percpu part and shared part (bridge_ifinfo). The shared part contains STP related info
Parallelize bridge_input step 1.8/2: Parallelize bridge member interfaces list -- o Split bridge_iflist into percpu part and shared part (bridge_ifinfo). The shared part contains STP related information. o Put create bridge_iflist on each CPU and put it onto percpu member interface list. o All of the STP operation is still serialized by bridge's serializer, except testing member interface's STP state. o Span interfaces no longer have unused STP information.
show more ...
|
#
4394693c |
| 15-Nov-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Parallelize bridge_input step 1/2: Parallelize bridge route information. See the commet at the head of net/if_bridge.c for the detailed information.
|
#
e9d22060 |
| 14-Nov-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Defer bridge callouts to BRIDGE_CFGPORT using dropable priority message. - Remove unnecessary callout_stop(); bridge_stop() has already done those.
|
Revision tags: v2.0.1 |
|
#
89ea766d |
| 14-Jun-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Check cached ifnet.if_bridge again in bridge_{input,output}() - Pass cached ifnet.if_bridge to bstp_input() - Pass the located bif to bstp_input(), so we won't need to locate bif again
These chang
- Check cached ifnet.if_bridge again in bridge_{input,output}() - Pass cached ifnet.if_bridge to bstp_input() - Pass the located bif to bstp_input(), so we won't need to locate bif again
These changes make it possible to use following sequence ifp->if_bridge = NULL; netmsg_service_sync(); to protect ifnet.if_bridge
show more ...
|
#
708a3bfa |
| 06-Jun-2007 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
bridge_enqueue() does not use bridge(4)'s softc, so don't pretend that the parameter is needed.
|
#
d217f5e5 |
| 30-Jun-2006 |
Scott Ullrich <geekgod@dragonflybsd.org> |
Bring if_bridge up to date with FreeBSD.
New features / improvements:
* better handling of fragmented packets * newer spanning tree support * txcsum fixes * monitor mode (multiplex bpf) * span
Bring if_bridge up to date with FreeBSD.
New features / improvements:
* better handling of fragmented packets * newer spanning tree support * txcsum fixes * monitor mode (multiplex bpf) * spanports * Use bit operations to get a locally administered address * GIF interfaces can now be used as span port members
Patch originally adapted from a version done by Andrew Thompson With-help-from: @corecode, @sephe, thompsa@freebsd.org
show more ...
|
#
7b9cfeef |
| 22-Dec-2005 |
Simon Schubert <corecode@dragonflybsd.org> |
Aquire serializer before calling ioctl
Submitted-by: Chris Csanady <cc@137.org>
|
#
ac93838f |
| 21-Dec-2005 |
Simon Schubert <corecode@dragonflybsd.org> |
Bring in if_bridge from Open-/Net-/FreeBSD
Based-on-patch-by: Andrew Atrens Reviewed-and-locking-corrected-by: dillon and sephe
|
#
1885d414 |
| 30-Mar-2011 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Major bridging functionality added (bug fixes 6)
* Flapping on one of the member interfaces can cause the entire bridge to go down due to all member interfaces entering a transient state.
kernel - Major bridging functionality added (bug fixes 6)
* Flapping on one of the member interfaces can cause the entire bridge to go down due to all member interfaces entering a transient state. For example, if openvpn is flapping the related tap interfaces will go up and down without any actual packet traffic making it across.
With these changes openvpn flapping no longer makes the bridge effectively non-operational.
* When a port is disabled or enabled either manually or due to a TAP process going away / attaching, only issue a configuration update when transitioning out of an active state.
Thus disabled<->l1blocking flip-flopping does not cause the other member interfaces to change state.
* Also change the initial state setup when LINK1 is flagged. Go into the L1BLOCKING state instead of the BLOCKING state.
show more ...
|
#
3110e56a |
| 26-Mar-2011 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Major bridging functionality added (bug fixes 4)
* Fix an issue where we were assuming that a root bridge receiving a configuration packet from a remote bridge would get a path cost tha
kernel - Major bridging functionality added (bug fixes 4)
* Fix an issue where we were assuming that a root bridge receiving a configuration packet from a remote bridge would get a path cost that already include the root bridge's path cost for that port. In fact the target bridge only includes an aggregate path cost to root (typically the lowest path cost of all the target bridge's ports), which is a fixed value.
* The root bridge must add the local path cost back in.
show more ...
|
#
9b42fdc9 |
| 05-Mar-2011 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Major bridging functionality added (bug fixes 2)
* Recalculate the port configuration after enabling a member interface, fixing an issue where openvpn brings up a TAP interface after au
kernel - Major bridging functionality added (bug fixes 2)
* Recalculate the port configuration after enabling a member interface, fixing an issue where openvpn brings up a TAP interface after authenticating the link but whos weights then go unrecognized by the bridge.
The port configuration was already being recalculated after a member interface becomes disabled.
* Reinitialize the bridge when the link0, link1, and/or link2 interface flag changes state, so the sysop doesn't have to bring the interface down and up manually to recognize the new settings.
show more ...
|
#
0e66e711 |
| 28-Feb-2011 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Major bridging functionality added (bug fixes)
* The root bridge was not taking into account the peer's weightings when calculating path costs.
In order to do this the root bridge must
kernel - Major bridging functionality added (bug fixes)
* The root bridge was not taking into account the peer's weightings when calculating path costs.
In order to do this the root bridge must use available peer info. The peer info should already include both the local and remote's path costs since 'we' are the root, so our path cost will already be directly incorporated in the path cost the peer reports to us.
* Fixes issue where not-weighted path costs on root bridge were not synchronized with the weighted path costs of one or more of its peers.
show more ...
|
#
1e858374 |
| 24-Feb-2011 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Major bridging functionality added (bonding)
* Add channel bonding support to if_bridge. This utilizes the link2 flag on the bridge interface. Participating member interfaces must be
kernel - Major bridging functionality added (bonding)
* Add channel bonding support to if_bridge. This utilizes the link2 flag on the bridge interface. Participating member interfaces must be programmed to the same MAC address. Multiple bonding groups can be created.
Note that both sides of participating member interfaces must implement the link2 feature. If the other side does not it will likely be blocking (due to the spanning tree protocol) some of the member interfaces and you will get packet loss.
* Document all the link flags and new features.
show more ...
|
#
70d9a675 |
| 24-Feb-2011 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Major bridging functionality completed
* Rewrite the spanning tree algorithm. Not well tested but both sides properly calculate the blocking pairs for the ports whereas before they did
kernel - Major bridging functionality completed
* Rewrite the spanning tree algorithm. Not well tested but both sides properly calculate the blocking pairs for the ports whereas before they did not.
Document the code as needed. The poor documentation created a lot of unnecessary headaches.
Separate out the peer state from the aggregated state.
* Greatly enhance the 'ifconfig [-v] bridgeN' status output so one can see exactly what the state of the sub-interfaces is.
* The bridge interface's ether address can now be modified. It is also possible to add IP addresses to the bridge interface but this has not been tested well and might not work.
* Nearly all traffic sourced from interfaces attached to the bridge now use the bridge's MAC address. This includes ARP. Theoretically this means that ganged links between bridges (bonding is NOT yet supported! Strictly master/backup)... should be able to failover without destroying the ARP tables on various systems.
* Add an experimental LINK2 option to the bridge. This will eventually be channel bonding but doesn't work so hot right now. At the moment it just round-robins output on sub-interfaces with the same MAC (usually TAP interfaces). Ill gets aggregated using the bridge's MAC but the comparison is used to create bonding groups.
This one needs considerably more work on properly adjusting its state to DESIGNATED instead of hacking packets over members in the BLOCKING state.
* Clean up some of the state transitions used by the LINK1 failover feature.
* Change the bridge interface to IFT_ETHER to allow IP and MAC assignments and for it to be properly handled in the rest of the stack.
* Aggregate input from all member interfaces into the bridge proper and re-output/forward/route as appropriate using the stateful information available in the bif lists to handle failover and other features.
* ARP handles MAC snafus due to bridging a little better.
* Changeover to TAILQs from LISTs for bifs.
* Move bif_flags to the bif_info structure so we can use it to hold active state.
* Implement SIOCGIFMEDIA in IF_TAP (still needs some work). This is required by the bridge code to properly be able to use TAP interfaces as members.
show more ...
|
#
3677aae9 |
| 23-Feb-2011 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Greatly enhance if_bridge
* Document the link0 feature, which enables transparent bridging.
* Implement the link1 feature, automatic failover using a slight mangling of the 802.11d proto
kernel - Greatly enhance if_bridge
* Document the link0 feature, which enables transparent bridging.
* Implement the link1 feature, automatic failover using a slight mangling of the 802.11d protocol. Both ends must implement the feature for this to work. Essentially this causes CFG 802.11d messages to be generated on the hello interval even if a bridge is not the root bridge.
The bridge also monitors for this traffic and places the link in a special L1BLOCKING state if it fails to receive any frames in (10 x hello) (around 20 seconds usually). This will automatically cause the bridge to failover to other links.
This only operates on links participating in the STP protocol (see man ifconfig), when link1 is set on the bridge interface. For ethernet bridging the link interfaces are typically multiple TAP interfaces.
* Allow all link interfaces participating in a bridge to have the same MAC address (used with TAP interfaces typically). This is mandatory if you also intend to use the link1 feature and want your failover to be reasonably smooth. The feature can be useful regardless.
* The ifconfig bridge output now shows additional information about link state and who it thinks the root node is.
show more ...
|
#
002c1265 |
| 14-Sep-2010 |
Matthew Dillon <dillon@apollo.backplane.com> |
network - Major netmsg retooling, part 1
* Remove all the netmsg shims and make all pr_usrreqs and some proto->pr_* requests directly netmsg'd.
* Fix issues with tcp implied connects and tcp6->tc
network - Major netmsg retooling, part 1
* Remove all the netmsg shims and make all pr_usrreqs and some proto->pr_* requests directly netmsg'd.
* Fix issues with tcp implied connects and tcp6->tcp4 fallbacks with implied connects.
* Fix an issue with a stack-based udp netmsg (allocate it)
* Consolidate struct ip6protosw and struct protosw into a single structure and normalize the API functions which differed between the two (primarily proto->pr_input()).
* Remove protosw->pr_soport()
* Replace varargs protocol *_input() functions (ongoing) with fixed arguments.
show more ...
|
#
32af04f7 |
| 12-Dec-2009 |
Sascha Wildner <saw@online.de> |
Remove inclusion of <sys/cdefs.h> from kernel .c files.
They are not needed and mostly leftovers from former __FBSDID and the likes.
Also add some missing CVS ids to the comments.
|