freebsd-src/sys/netgraph
Lutz Donnerhacke c869d905ba netgraph/ng_bridge: Derive forwarding mode from first attached hook
Handling of unknown MACs on an bridge with incomplete learning
capabilites (aka uplink ports) can be defined in different ways.

The classical approach is to broadcast unicast frames send to an
unknown MAC, because the unknown devices can be everywhere. This mode
is default for ng_bridge(4).

In the case of dedicated uplink ports, which prohibit learning of MAC
addresses in order to save memory and CPU cycles, the broadcast
approach is dangerous. All traffic to the uplink port is broadcasted
to every downlink port, too. In this case, it's better to restrict the
distribution of frames to unknown MAC to the uplink ports only.

In order to keep the chance small and the handling as natural as
possible, the first attached link is used to determine the behaviour
of the bridge: If it is an "uplink" port, then the bridge switch from
classical mode to restricted mode.

Reviewed By:	kp
Approved by:	kp (mentor)
MFC after:	2 weeks
Differential Revision: https://reviews.freebsd.org/D28487
2021-02-06 15:01:15 +01:00
..
atm net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
bluetooth pccard: Remove bt3c(4) driver 2021-01-07 20:40:41 -07:00
netflow Use light-weight versions of routing lookup functions in ng_netflow. 2020-12-26 11:27:38 +00:00
netgraph.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_async.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_async.h
ng_atmllc.c
ng_atmllc.h
ng_base.c netgraph: Fix ng_ether's shutdown handing 2020-12-23 00:12:16 -05:00
ng_bpf.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_bpf.h
ng_bridge.c netgraph/ng_bridge: Derive forwarding mode from first attached hook 2021-02-06 15:01:15 +01:00
ng_bridge.h netgraph/ng_bridge: Introduce "uplink" ports without MAC learning 2021-02-06 11:09:26 +01:00
ng_car.c netgraph/ng_car: Add color marking code 2021-01-27 21:22:51 +01:00
ng_car.h netgraph/ng_car: Add color marking code 2021-01-27 21:22:51 +01:00
ng_checksum.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_checksum.h
ng_cisco.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_cisco.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_deflate.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_deflate.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_device.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_device.h
ng_echo.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_echo.h
ng_eiface.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_eiface.h
ng_etf.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_etf.h
ng_ether.c netgraph: Fix ng_ether's shutdown handing 2020-12-23 00:12:16 -05:00
ng_ether.h
ng_ether_echo.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_ether_echo.h
ng_frame_relay.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_frame_relay.h
ng_gif.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_gif.h
ng_gif_demux.c
ng_gif_demux.h
ng_hole.c
ng_hole.h
ng_hub.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_hub.h
ng_iface.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_iface.h ng_iface(4): Remove unsupported protocols. 2020-07-31 14:08:54 +00:00
ng_ip_input.c
ng_ip_input.h
ng_ipfw.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_ipfw.h
ng_ksocket.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_ksocket.h
ng_l2tp.c ng_l2tp: Fix callout synchronization in the rexmit timeout handler 2020-09-25 18:55:50 +00:00
ng_l2tp.h
ng_lmi.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_lmi.h
ng_macfilter.c netgraph: macfilter: small fixes 2020-12-09 15:28:56 +00:00
ng_macfilter.h New Netgraph module ng_macfilter: 2020-12-08 15:09:42 +00:00
ng_message.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_mppc.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_mppc.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_nat.c netgraph/ng_nat: Add RFC 6598/Carrier Grade NAT support 2021-01-24 20:38:35 +01:00
ng_nat.h netgraph/ng_nat: Add RFC 6598/Carrier Grade NAT support 2021-01-24 20:38:35 +01:00
ng_one2many.c netgraph/ng_one2main: Clarification in comments about copy mode 2021-01-18 14:10:34 +01:00
ng_one2many.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_parse.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_parse.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_patch.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_patch.h
ng_pipe.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_pipe.h Increase BER to PER lookup table size in an attempt to mitigate panics 2020-08-18 22:46:46 +00:00
ng_ppp.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_ppp.h
ng_pppoe.c ng_ether: Enter NET_EPOCH where required 2020-09-02 11:49:22 +00:00
ng_pppoe.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_pptpgre.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_pptpgre.h
ng_pred1.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_pred1.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_rfc1490.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_rfc1490.h
ng_sample.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_sample.h
ng_socket.c [ng_socket] Don't take the SOCKBUF_LOCK() twice in the RX data path. 2020-12-17 18:15:07 +00:00
ng_socket.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_socketvar.h
ng_source.c netgraph/ng_source: Switch queuing framework 2021-01-29 12:34:53 +01:00
ng_source.h
ng_split.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_split.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_sppp.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_sppp.h
ng_tag.c netgraph/ng_tag: permit variable length data 2021-01-18 13:23:22 +01:00
ng_tag.h
ng_tcpmss.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_tcpmss.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_tee.c
ng_tee.h
ng_tty.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_tty.h
ng_UI.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_UI.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_vjc.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_vjc.h
ng_vlan.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_vlan.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_vlan_rotate.c netgraph/ng_vlan_rotate: IEEE 802.1ad VLAN manipulation netgraph type 2021-01-26 16:53:24 +01:00
ng_vlan_rotate.h netgraph/ng_vlan_rotate: IEEE 802.1ad VLAN manipulation netgraph type 2021-01-26 16:53:24 +01:00
NOTES
qos.h netgraph/ng_car: Add color marking code 2021-01-27 21:22:51 +01:00