#
fdafd315 |
|
24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row. Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/ Sponsored by: Netflix
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
b61a5730 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-NetBSD identifier is obsolete, drop -NetBSD The SPDX folks have obsoleted the BSD-2-Clause-NetBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
2c2b37ad |
|
13-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
ifnet/API: Move struct ifnet definition to a <net/if_private.h> Hide the ifnet structure definition, no user serviceable parts inside, it's a netstack implementation detail. Include it temporarily in <net/if_var.h> until all drivers are updated to use the accessors exclusively. Reviewed by: glebius Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D38046
|
#
0e4025bf |
|
15-Apr-2021 |
Jonah Caplan <jcaplan@blackberry.com> |
bridgestp: validate timer values in config BPDU IEEE Std 802.1D-2004 Section 17.14 defines permitted ranges for timers. Incoming BPDU messages should be checked against the permitted ranges. The rest of 17.14 appears to be enforced already. PR: 254924 Reviewed by: kp, donner Differential Revision: https://reviews.freebsd.org/D29782
|
#
f5537cd0 |
|
24-Feb-2021 |
Kristof Provost <kp@FreeBSD.org> |
bridgestp: Ensure we send STP on VLAN interfaces Reviewed by: donner@ MFC after: 1 week X-MFC-with: 711ed156b94562c3dcb2ee9c1b3f240f960a75d2 Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D28916
|
#
89fa9c34 |
|
21-Feb-2021 |
Kristof Provost <kp@FreeBSD.org> |
bridge/stp: Ensure we enter NET_EPOCH whenever we can send traffic Reviewed by: donner@ MFC after: 1 week Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D28858
|
#
711ed156 |
|
20-Feb-2021 |
Kristof Provost <kp@FreeBSD.org> |
bridge: Support STP on VLAN devices VLAN devices have type IFT_L2VLAN, so the STP code mistakenly believed they couldn't be used for STP. That's not the case, so add the ITF_L2VLAN to the check. Reviewed by: donner@ MFC after: 1 week Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D28857
|
#
662c1305 |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
net: clean up empty lines in .c and .h files
|
#
d6747eaf |
|
15-Mar-2019 |
Kristof Provost <kp@FreeBSD.org> |
bridge: Fix panic if the STP root is removed If the spanning tree root interface is removed from the bridge we panic on the next 'ifconfig'. While the STP code is notified whenever a bridge member interface is removed from the bridge it does not clear the bs_root_port. This means bs_root_port can still point at an bridge_iflist which has been free()d. The next access to it will panic. Explicitly check if the interface we're removing in bstp_destroy() is the root, and if so re-assign the roles, which clears bs_root_port. Reviewed by: philip MFC after: 2 weeks
|
#
a68cc388 |
|
08-Jan-2019 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Mechanical cleanup of epoch(9) usage in network stack. - Remove macros that covertly create epoch_tracker on thread stack. Such macros a quite unsafe, e.g. will produce a buggy code if same macro is used in embedded scopes. Explicitly declare epoch_tracker always. - Unmask interface list IFNET_RLOCK_NOSLEEP(), interface address list IF_ADDR_RLOCK() and interface AF specific data IF_AFDATA_RLOCK() read locking macros to what they actually are - the net_epoch. Keeping them as is is very misleading. They all are named FOO_RLOCK(), while they no longer have lock semantics. Now they allow recursion and what's more important they now no longer guarantee protection against their companion WLOCK macros. Note: INP_HASH_RLOCK() has same problems, but not touched by this commit. This is non functional mechanical change. The only functionally changed functions are ni6_addrs() and ni6_store_addrs(), where we no longer enter epoch recursively. Discussed with: jtl, gallatin
|
#
4f6c66cc |
|
23-May-2018 |
Matt Macy <mmacy@FreeBSD.org> |
UDP: further performance improvements on tx Cumulative throughput while running 64 netperf -H $DUT -t UDP_STREAM -- -m 1 on a 2x8x2 SKL went from 1.1Mpps to 2.5Mpps Single stream throughput increases from 910kpps to 1.18Mpps Baseline: https://people.freebsd.org/~mmacy/2018.05.11/udpsender2.svg - Protect read access to global ifnet list with epoch https://people.freebsd.org/~mmacy/2018.05.11/udpsender3.svg - Protect short lived ifaddr references with epoch https://people.freebsd.org/~mmacy/2018.05.11/udpsender4.svg - Convert if_afdata read lock path to epoch https://people.freebsd.org/~mmacy/2018.05.11/udpsender5.svg A fix for the inpcbhash contention is pending sufficient time on a canary at LLNW. Reviewed by: gallatin Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15409
|
#
fe267a55 |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys: general adoption of SPDX licensing ID tags. 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. No functional change intended.
|
#
a4641f4e |
|
03-May-2016 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/net*: minor spelling fixes. No functional change.
|
#
8ec07310 |
|
01-Feb-2016 |
Gleb Smirnoff <glebius@FreeBSD.org> |
These files were getting sys/malloc.h and vm/uma.h with header pollution via sys/mbuf.h
|
#
76039bc8 |
|
26-Oct-2013 |
Gleb Smirnoff <glebius@FreeBSD.org> |
The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 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.
|
#
dc4ad05e |
|
14-Mar-2013 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Use m_get/m_gethdr instead of compat macros. Sponsored by: Nginx, Inc.
|
#
eb1b1807 |
|
05-Dec-2012 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Mechanically substitute flags from historic mbuf allocator with malloc(9) flags within sys. Exceptions: - sys/contrib not touched - sys/mbuf.h edited manually
|
#
9823d527 |
|
10-Oct-2012 |
Kevin Lo <kevlo@FreeBSD.org> |
Revert previous commit... Pointyhat to: kevlo (myself)
|
#
a10cee30 |
|
09-Oct-2012 |
Kevin Lo <kevlo@FreeBSD.org> |
Prefer NULL over 0 for pointers
|
#
2885c19e |
|
20-Apr-2012 |
Andrew Thompson <thompsa@FreeBSD.org> |
Move the interface media check to a taskqueue, some interfaces (usb) sleep during SIOCGIFMEDIA and we were holding locks.
|
#
7702d401 |
|
20-Apr-2012 |
Andrew Thompson <thompsa@FreeBSD.org> |
Add linkstate to bridge(4), set the link to up when at least one underlying interface is up, otherwise the link is down. This, among other things, allows carp to work on a bridge. Prodded by: glebius Tested by: Alexander Lunev
|
#
8d45bd6e |
|
24-Feb-2012 |
Andrew Thompson <thompsa@FreeBSD.org> |
Only look for a usable MAC address for the bridge ID from ports within our bridge, this allows us to have more than one independent bridge in the same STP domain. PR: kern/164369 Submitted by: Nikos Vassiliadis (earlier version) MFC after: 2 weeks
|
#
47190ea6 |
|
23-Feb-2012 |
Andrew Thompson <thompsa@FreeBSD.org> |
Indicate this function decrements the timer as well as testing for expiry.
|
#
2ad65e31 |
|
22-Feb-2012 |
Andrew Thompson <thompsa@FreeBSD.org> |
Now that network interfaces advertise if they support linkstate notifications we do not need to perform a media ioctl every 15 seconds.
|
#
4661f862 |
|
22-Feb-2012 |
Andrew Thompson <thompsa@FreeBSD.org> |
bstp_input() always consumes the packet so remove the mbuf handling dance around it. Obtained from: OpenBSD (r1.37)
|
#
2fe7ca2c |
|
07-Jun-2011 |
Marko Zec <zec@FreeBSD.org> |
Set curvnet context in a callout-trigerred code path. MFC after: 3 days
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
3ef94f2b |
|
28-Aug-2009 |
Robert Watson <rwatson@FreeBSD.org> |
Merge r196481 from head to stable/8: Rework global locks for interface list and index management, correcting several critical bugs, including race conditions and lock order issues: Replace the single rwlock, ifnet_lock, with two locks, an rwlock and an sxlock. Either can be held to stablize the lists and indexes, but both are required to write. This allows the list to be held stable in both network interrupt contexts and sleepable user threads across sleeping memory allocations or device driver interactions. As before, writes to the interface list must occur from sleepable contexts. Reviewed by: bz, julian Approved by: re (kib)
|
#
77dfcdc4 |
|
23-Aug-2009 |
Robert Watson <rwatson@FreeBSD.org> |
Rework global locks for interface list and index management, correcting several critical bugs, including race conditions and lock order issues: Replace the single rwlock, ifnet_lock, with two locks, an rwlock and an sxlock. Either can be held to stablize the lists and indexes, but both are required to write. This allows the list to be held stable in both network interrupt contexts and sleepable user threads across sleeping memory allocations or device driver interactions. As before, writes to the interface list must occur from sleepable contexts. Reviewed by: bz, julian MFC after: 3 days
|
#
530c0060 |
|
01-Aug-2009 |
Robert Watson <rwatson@FreeBSD.org> |
Merge the remainder of kern_vimage.c and vimage.h into vnet.c and vnet.h, we now use jails (rather than vimages) as the abstraction for virtualization management, and what remained was specific to virtual network stacks. Minor cleanups are done in the process, and comments updated to reflect these changes. Reviewed by: bz Approved by: re (vimage blanket)
|
#
eddfbb76 |
|
14-Jul-2009 |
Robert Watson <rwatson@FreeBSD.org> |
Build on Jeff Roberson's linker-set based dynamic per-CPU allocator (DPCPU), as suggested by Peter Wemm, and implement a new per-virtual network stack memory allocator. Modify vnet to use the allocator instead of monolithic global container structures (vinet, ...). This change solves many binary compatibility problems associated with VIMAGE, and restores ELF symbols for virtualized global variables. Each virtualized global variable exists as a "reference copy", and also once per virtual network stack. Virtualized global variables are tagged at compile-time, placing the in a special linker set, which is loaded into a contiguous region of kernel memory. Virtualized global variables in the base kernel are linked as normal, but those in modules are copied and relocated to a reserved portion of the kernel's vnet region with the help of a the kernel linker. Virtualized global variables exist in per-vnet memory set up when the network stack instance is created, and are initialized statically from the reference copy. Run-time access occurs via an accessor macro, which converts from the current vnet and requested symbol to a per-vnet address. When "options VIMAGE" is not compiled into the kernel, normal global ELF symbols will be used instead and indirection is avoided. This change restores static initialization for network stack global variables, restores support for non-global symbols and types, eliminates the need for many subsystem constructors, eliminates large per-subsystem structures that caused many binary compatibility issues both for monitoring applications (netstat) and kernel modules, removes the per-function INIT_VNET_*() macros throughout the stack, eliminates the need for vnet_symmap ksym(2) munging, and eliminates duplicate definitions of virtualized globals under VIMAGE_GLOBALS. Bump __FreeBSD_version and update UPDATING. Portions submitted by: bz Reviewed by: bz, zec Discussed with: gnn, jamie, jeff, jhb, julian, sam Suggested by: peter Approved by: re (kensmith)
|
#
5736e6fb |
|
23-Jun-2009 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
After cleaning up rt_tables from vnet.h and cleaning up opt_route.h a lot of files no longer need route.h either. Garbage collect them. While here remove now unneeded vnet.h #includes as well.
|
#
2b7d10c2 |
|
21-Jun-2009 |
Roman Divacky <rdivacky@FreeBSD.org> |
In non-debugging mode make this define (void)0 instead of nothing. This helps to catch bugs like the below with clang. if (cond); <--- note the trailing ; something(); Approved by: ed (mentor) Discussed on: current@
|
#
8d8bc018 |
|
08-Jun-2009 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
After r193232 rt_tables in vnet.h are no longer indirectly dependent on the ROUTETABLES kernel option thus there is no need to include opt_route.h anymore in all consumers of vnet.h and no longer depend on it for module builds. Remove the hidden include in flowtable.h as well and leave the two explicit #includes in ip_input.c and ip_output.c.
|
#
6e3513f5 |
|
27-Apr-2009 |
Kip Macy <kmacy@FreeBSD.org> |
replace IFQ_ENQUEUE + if_start with if_transmit
|
#
33553d6e |
|
27-Feb-2009 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
For all files including net/vnet.h directly include opt_route.h and net/route.h. Remove the hidden include of opt_route.h and net/route.h from net/vnet.h. We need to make sure that both opt_route.h and net/route.h are included before net/vnet.h because of the way MRT figures out the number of FIBs from the kernel option. If we do not, we end up with the default number of 1 when including net/vnet.h and array sizes are wrong. This does not change the list of files which depend on opt_route.h but we can identify them now more easily.
|
#
4b79449e |
|
02-Dec-2008 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Rather than using hidden includes (with cicular dependencies), 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
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
8b615593 |
|
02-Oct-2008 |
Marko Zec <zec@FreeBSD.org> |
Step 1.5 of importing the network stack virtualization infrastructure 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
|
#
603724d3 |
|
17-Aug-2008 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Commit step 1 of the vimage project, (network stack) virtualization work done by Marko Zec (zec@). This is the first in a series of commits over the course of the next few weeks. Mark all uses of global variables to be virtualized with a V_ prefix. Use macros to map them back to their global names for now, so this is a NOP change only. We hope to have caught at least 85-90% of what is needed so we do not invalidate a lot of outstanding patches again. Obtained from: //depot/projects/vimage-commit2/... Reviewed by: brooks, des, ed, mav, julian, jamie, kris, rwatson, zec, ... (various people I forgot, different versions) md5 (with a bit of help) Sponsored by: NLnet Foundation, The FreeBSD Foundation X-MFC after: never V_Commit_Message_Reviewed_By: more people than the patch
|
#
9ddd3624 |
|
09-Dec-2007 |
Andrew Thompson <thompsa@FreeBSD.org> |
Fix spelling. Obtained from: OpenBSD
|
#
11eeea5e |
|
17-Aug-2007 |
Andrew Thompson <thompsa@FreeBSD.org> |
If the STP state machine is stopped then clear the bridge-id and root-id. Approved by: re (kensmith)
|
#
dd040130 |
|
04-Aug-2007 |
Andrew Thompson <thompsa@FreeBSD.org> |
- Ensure the path cost does not exceed 65535 in legacy STP mode. - If the path cost is calculated when the link is down, set a pending flag so it is calculated again when it comes back up. - To not use 00:00:00:00:00:00 as the bridge id, all interfaces are scanned and the lowest number wins. All zeros is too low. Approved by: re (rwatson)
|
#
e67b204a |
|
22-Jun-2007 |
Andrew Thompson <thompsa@FreeBSD.org> |
Check the correct port to see if synced is true. PR: misc/113958 Submitted by: Aaron Needles Approved by: re (bmah) MFC after: 1 week
|
#
8bc736d0 |
|
14-Mar-2007 |
Andrew Thompson <thompsa@FreeBSD.org> |
Properly move the setting of bstp_linkstate_p to the bridgestp module.
|
#
e5bda9fb |
|
09-Mar-2007 |
Andrew Thompson <thompsa@FreeBSD.org> |
Change the passing of callbacks to a struct in case this needs to be extended in the future.
|
#
98b81793 |
|
18-Jan-2007 |
Andrew Thompson <thompsa@FreeBSD.org> |
Set topology change propagation on all ports _except_ the caller.
|
#
78709605 |
|
11-Dec-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
These days P2P means peer-2-peer (also well known from serveral filesharing protocols) while PointToPoint has been PtP links. Change the variables accordingly while the code is still fresh and undocumented. Requested by: bz
|
#
daacddca |
|
04-Dec-2006 |
Shteryana Shopova <syrinx@FreeBSD.org> |
Add two new flags to if_bridge(4) indicating whether the edge flag of the bridge port and path cost have been administratively set or calculated automatically by RSTP. Make sure to transition from non-edge to edge when the port goes down and the edge flag was manually set before. This is needed to comply with the condition ((!portEnabled && AdminEdge) || ....) in the Bridge Detection State Machine (IEE802.1D-2004, p. 171). Reviewed by: thompsa Approved by: bz (mentor)
|
#
6c32e05c |
|
26-Nov-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Sync with the OpenBSD port of RSTP - use flags rather than sperate ioctls for edge, p2p - implement p2p and autop2p flags - define large pathcost constant as ULL - show bridgeid and rootid in ifconfig Obtained from: Reyk Floeter <reyk@openbsd.org>
|
#
ebd4a4ba |
|
26-Nov-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Initialize the port info, this shouldnt have been removed in r1.28
|
#
cc864f0c |
|
26-Nov-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Remove redundant setting of port state.
|
#
071fff62 |
|
26-Nov-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
use two stage creation of stp ports, this means that the stp variables can be set before the port is marked STP and they will no longer be overwrittten
|
#
36dac7e2 |
|
19-Nov-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Do not call bstp_stop() internally as it clears the running flag which causes the timer to never be restarted. Reported by: bz
|
#
c25789cc |
|
09-Nov-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
MFp4 - Each stp port is added sequentially so it was possible for our bridgeid to change every time because the new port has a lower MAC address. Instead just find the lowest MAC address from all Ethernet adapters in the machine as the value only needs to be unique, this stops a lot of churn on the protocol. - Update the states after enabling or disabling a port. - Keep tabs if we have been stopped or started by our parent bridge. - The callout only needs to be drained before destroying the mutex, move it to bstp_detach.
|
#
f935a26d |
|
02-Nov-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Defer sending the bpdu from bstp_update_info as all code paths will test this flag anyway.
|
#
2efdffee |
|
02-Nov-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Do not test all the conditions if the port is already forwarding. Also print a debug message if the port is agreed as it is an important condition of the protocol.
|
#
cd281f6d |
|
02-Nov-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Fix a resource leak when the mbuf pointer changes. CID: 1564, 1565 Found by: Coverity Prevent (tm)
|
#
edc9f4ae |
|
01-Nov-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
If the port is agreed or edge then allow it go go straight to forwarding rather than waiting another tick (1s) for the states to be checked again.
|
#
3fab7669 |
|
01-Nov-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Bring in support for the Rapid Spanning Tree Protocol (802.1w). RSTP provides faster spanning tree convergence, the protocol will exchange information with neighboring switches to quickly transition to forwarding without creating loops. The code will default to RSTP mode but will downgrade any port connected to a legacy STP network so is fully backward compatible. Reviewed by: syrinx Tested by: syrinx
|
#
f26fc2ad |
|
30-Sep-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Remove licence clauses 3 & 4 OKed by: Jason L. Wright
|
#
65a963b7 |
|
12-Aug-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Add the module version to fix the loading with if_bridge. Reported by: keramida Tested by: keramida
|
#
516b37d3 |
|
01-Aug-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Fix style in the last commit, the variable declaration goes at the top of the function.
|
#
6f2abce0 |
|
01-Aug-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Add a callback so we can notify the parent bridge that a port state change has occured, we need to do this from a taskqueue to avoid a LOR with the if_bridge mutex.
|
#
df6e8892 |
|
01-Aug-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Be sure to disable the port when removing it from STP.
|
#
51383c37 |
|
31-Jul-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Add some statistics that are needed to support RFC4188 as part of the SoC2006 work on a bridge monitoring module for BSNMP. Submitted by: shteryana (SoC 2006)
|
#
96e47153 |
|
26-Jul-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
/tmp/cvsuusTrc
|
#
e1457c3e |
|
05-Mar-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
If we miss the LINK_UP event from the network interface then the bridge port will remain in the disabled state until another link event happens in the future (if at all). Add a timer to periodically check the interface state and recover. Reported by: Nik Lam <freebsdnik j2d.lam.net.au> MFC after: 3 days
|
#
43dc0e8c |
|
27-Feb-2006 |
Andrew Thompson <thompsa@FreeBSD.org> |
Fix up the Bridge Identifier field in the BPDU packet. - use the cu_bridge_id rather than the cu_rootid for the bridge address [1] - the memcmp return value is not signed so the wrong interface may have been selected - fix up the calculation of sc_bridge_id PR: kern/93909 [1] MFC after: 3 days
|
#
6b743820 |
|
17-Dec-2005 |
Andrew Thompson <thompsa@FreeBSD.org> |
Minor whitespace cleanup.
|
#
6b32f3d3 |
|
14-Oct-2005 |
Andrew Thompson <thompsa@FreeBSD.org> |
Change most of the bridge and stp funtions to static. This has highlighted that the following funtions are not used, wrap in '#ifdef noused' for the moment. bstp_enable_change_detection bstp_disable_change_detection bstp_set_bridge_priority bstp_set_port_priority bstp_set_path_cost
|
#
fd6238a6 |
|
13-Oct-2005 |
Andrew Thompson <thompsa@FreeBSD.org> |
Further clean up the bridge hooks in if_ethersubr.c and ng_ether.c - move the function pointer definitions to if_bridgevar.h - move most of the logic to the new BRIDGE_INPUT and BRIDGE_OUTPUT macros - remove unneeded functions from if_bridgevar.h and sort a little.
|
#
8eb8e358 |
|
10-Oct-2005 |
Andrew Thompson <thompsa@FreeBSD.org> |
Do not unconditionally set a spanning tree port to forwarding as the link may be down when we attach. We wont get updated until a linkstate change happens. Go via bstp_ifupdstatus() which checks the media status first.
|
#
23e76431 |
|
18-Aug-2005 |
Andrew Thompson <thompsa@FreeBSD.org> |
Mark the callouts as MPSAFE as if_bridge has been giant-free since day 1. Use the SMP friendly callout_init_mtx() while we are here. Approved by: mlaier (mentor) MFC after: 3 days
|
#
691cdb53 |
|
14-Aug-2005 |
Andrew Thompson <thompsa@FreeBSD.org> |
Ensure that we are holding the lock when initialising the bridge interface. We could initialise while unlocked if the bridge is not up when setting the inet address, ether_ioctl() would call bridge_init. Change it so bridge_init is always called unlocked and then locks before calling bstp_initialization(). Reported by: Michal Mertl Approved by: mlaier (mentor) MFC after: 3 days
|
#
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 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
|
#
ea32e732 |
|
05-Jul-2005 |
Andrew Thompson <thompsa@FreeBSD.org> |
- Previously when broadcasting to N number of interfaces we would run pfil hooks for each outgoing interface but also run pfil hooks _N times_ on the bridge interface. This is changed so pfil hooks are run once for the bridge interface (bridge0) and then only on the outgoing interfaces in the broadcast loop. - Simplify bridge_enqueue() by moving bridge_pfil() to the callers. - Check (inet6_pfil_hook.ph_busy_count >= 0), it may be possible to have a packet filter hooked for only ipv6 but we were only checking if ipv4 hooks were busy. - Minor optimisation for null mbuf check after bridge_pfil(), move it into the if-block as it couldnt possibly be null outside. Prodded by: mlaier Approved by: re (scottl), mlaier (mentor)
|
#
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 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
|
#
31997bf2 |
|
04-Jun-2005 |
Andrew Thompson <thompsa@FreeBSD.org> |
Add if_bridge, which provides more advanced Ethernet bridging and 802.1d spanning tree support. Based on Jason Wright's bridge driver from OpenBSD, and modified by Jason R. Thorpe in NetBSD. Reviewed by: mlaier, bms, green Silence from: -net Approved by: mlaier (mentor) Obtained from: NetBSD
|