#
86a6393a |
|
08-Apr-2024 |
David Marker <dave@freedave.net> |
ng_bridge: allow to automatically assign numbers to new hooks This will allow a userland machinery that orchestrates a bridge (e.g. a jail or vm manager) to not double the number allocation logic. See bug 278130 for longer description and examples. Reviewed by: glebius, afedorov Differential Revision: https://reviews.freebsd.org/D44615 PR: 278130
|
#
95ee2897 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
7fc82fd1 |
|
03-Mar-2023 |
Gleb Smirnoff <glebius@FreeBSD.org> |
ipfw: garbage collect ip_fw_chk_ptr It is a relict left from the old times when ipfw(4) was hooked into IP stack directly, without pfil(9).
|
#
6d5f002e |
|
12-Apr-2022 |
John Baldwin <jhb@FreeBSD.org> |
netgraph: Remove the rethook parameter from NG_NODE_FOREACH_HOOK. This parameter was set to the hook that terminated the iteration early. However, none of the remaining callers used this argument and it was always set to an otherwise-unused variable.
|
#
319e9fc6 |
|
23-Nov-2021 |
Gleb Smirnoff <glebius@FreeBSD.org> |
ng_bridge: count item allocation failures as memory failures Submitted by: Dmitry Luhtionov <dmitryluhtionov gmail.com>
|
#
e0e3ded7 |
|
13-Aug-2021 |
Mark Johnston <markj@FreeBSD.org> |
ng_bridge: Use M_NOWAIT when allocating memory in the newhook routine newhook can be invoked by ngthread, which runs in a network epoch section and is thus not permitted to perform M_WAITOK allocations. Reported by: Jenkins Reviewed by: donner, afedorov MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D31486
|
#
4c3280e5 |
|
13-Jun-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/bridge: malloc without flags During tests an assert was triggered and pointed to missing flags in the newlink function of ng_bridge(4). Reported by: markj Reviewed by: markj MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D30759
|
#
a56e5ad6 |
|
27-Apr-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: Handle send errors during loop handling If sending out a packet fails during the loop over all links, the allocated memory is leaked and not all links receive a copy. This patch fixes those problems, clarifies a premature abort of the loop, and fixes a minory style(9) bug. PR: 255430 Submitted by: Dancho Penev Tested by: Dancho Penev MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D30008
|
#
4dfe70fd |
|
11-Feb-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: Avoid cache thrashing Hint the compiler, that this update is needed at most once per second. Only in this case the memory line needs to be written. This will reduce the amount of cache trashing during forward of most frames. Suggested by: zec Approved by: zec MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D28601
|
#
9674c2e6 |
|
12-Jan-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: become SMP aware The node ng_bridge underwent a lot of changes in the last few months. All those steps were necessary to distinguish between structure modifying and read-only data transport paths. Now it's done, the node can perform frame forwarding on multiple cores in parallel. MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D28123
|
#
f6e0c471 |
|
09-Feb-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: move MACs via control message Use the new control message to move ethernet addresses from a link to a new link in ng_bridge(4). Send this message instead of doing the work directly requires to move the loop detection into the control message processing. This will delay the loop detection by a few frames. This decouples the read-only activity from the modification under a more strict writer lock. Reviewed by: manpages (gbe) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D28559
|
#
b1bd4473 |
|
04-May-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: learn MACs via control message Add a new control message to move ethernet addresses to a given link in ng_bridge(4). Send this message instead of doing the work directly. This decouples the read-only activity from the modification under a more strict writer lock. Decoupling the work is a prerequisite for multithreaded operation. Approved by: manpages (bcr), kp (earlier version) MFC: 3 weeks Differential Revision: https://reviews.freebsd.org/D28516
|
#
3c958f5f |
|
10-Feb-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: Add counters for the first link, too For broadcast, multicast and unknown unicast, the replication loop sends a copy of the packet to each link, beside the first one. This special path is handled later, but the counters are not updated. Factor out the common send and count actions as a function. Reviewed by: kp MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D28537
|
#
011b7317 |
|
08-Feb-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: Document staleness in multithreaded operation In the data path of ng_bridge(4), the only value of the host struct, which needs to be modified, is the staleness, which is reset every time a frame is received. It's save to leave the code as it is. This patch is part of a series to make ng_bridge(4) multithreaded. Reviewed by: kp MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D28546
|
#
ccf4cd2e |
|
08-Feb-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: Merge internal structures In a earlier version of ng_bridge(4) the exernal visible host entry structure was a strict subset of the internal one. So internal view was a direct annotation of the external structure. This strict inheritance was lost many versions ago. There is no need to encapsulate a part of the internal represntation as a separate structure. This patch is a preparation to make the internal structure read only in the data path in order to make ng_bridge(4) multithreaded. Reviewed by: kp MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D28545
|
#
6117aa58 |
|
13-Jan-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: Make simple internal functions read-only The data path in netgraph is designed to work on an read only state of the whole netgraph network. Currently this is achived by convention, there is no technical enforcment. In the case of NETGRAPH_DEBUG all nodes can be annotated for debugging purposes, so the strict enforcment needs to be lifted for this purpose. This patch is part of a series to make ng_bridge multithreaded, which is done by rewrite the data path to operate on const. Reviewed By: kp MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D28141
|
#
cef689f4 |
|
07-Feb-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
Revert "netgraph/ng_bridge: Make simple internal functions read-only" Patch mass breaks LINT kernels. This reverts commit bb67e52db143b699bdac1830717930b26a7b5766.
|
#
bb67e52d |
|
13-Jan-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: Make simple internal functions read-only The data path in netgraph is designed to work on an read only state of the whole netgraph network. Currently this is achived by convetion, there is no technical enforcment. This patch is part of a series to make ng_brigde multithreaded, which is done by rewrite the data path to const handling. Reviewed By: kp MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D28141
|
#
ed0a1527 |
|
06-Feb-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: Remove old table ABI This was announced to happen after the 12 relases. Remove a depeciated ABI. The complete removal is for HEAD only. I'll remove the #define in stable/13 as MFC, so the code will still exist in 13.x, but will not included by default. Earlier versions will not be affected. Reviewed by: kp MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D28518
|
#
66c72859 |
|
12-Jan-2021 |
Lutz Donnerhacke <lutz@donnerhacke.de> |
netgraph/ng_bridge: switch stats to counter framework This is the first patch of a series of necessary steps to make ng_bridge(4) multithreaded. Reviewed by: melifaro (network), afedorov MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D28125
|
#
c869d905 |
|
06-Feb-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
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
|
#
f961caf2 |
|
06-Feb-2021 |
Lutz Donnerhacke <donner@FreeBSD.org> |
netgraph/ng_bridge: Introduce "uplink" ports without MAC learning The ng_bridge(4) node is designed to work in moderately small environments. Connecting such a node to a larger network rapidly fills the MAC table for no reason. It even become complicated to obtain data from the gettable message, because the result is too large to transmit. This patch introduces, two new functionality bits on the hooks: - Allow or disallow MAC address learning for incoming patckets. - Allow or disallow sending unknown MACs through this hook. Uplinks are characterized by denied learing while sending out unknowns. Normal links are charaterized by allowed learning and sending out unknowns. Reviewed by: kp Approved by: kp (mentor) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D23963
|
#
662c1305 |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
net: clean up empty lines in .c and .h files
|
#
aeaef7d5 |
|
05-Jan-2020 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
netgraph/ng_bridge: Reestablish old ABI In order to be able to merge r353026 bring back support for the old cookie API for a transition period in 12.x releases (and possibly 13) before the old API can be removed again entirely. Suggested by: julian Submitted by: Lutz Donnerhacke (lutz donnerhacke.de) PR: 240787 Reviewed by: julian MFC after: 2 weeks X-MFC with: r353026 Differential Revision: https://reviews.freebsd.org/D21961
|
#
abc4b11c |
|
01-Nov-2019 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Fix regression from r353026. Pointer was increased instead of value pointed to. PR: 241646 Submitted by: Aleksandr Fedorov <aleksandr.fedorov itglobal.com>
|
#
0b951c55 |
|
02-Oct-2019 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Fix build failure from r353026. Somehow module build allowed this. Pointy hat to: glebius
|
#
631cabba |
|
02-Oct-2019 |
Gleb Smirnoff <glebius@FreeBSD.org> |
- Remove the compile time limit for number of links a ng_bridge node can handle. Instead using an array on node private data, use per-hook private data. - Use NG_NODE_FOREACH_HOOK() to traverse through hooks instead of array. PR: 240787 Submitted by: Lutz Donnerhacke <lutz donnerhacke.de> Differential Revision: https://reviews.freebsd.org/D21803
|
#
ac2fffa4 |
|
21-Jan-2018 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
Revert r327828, r327949, r327953, r328016-r328026, r328041: Uses of mallocarray(9). The use of mallocarray(9) has rocketed the required swap to build FreeBSD. This is likely caused by the allocation size attributes which put extra pressure on the compiler. Given that most of these checks are superfluous we have to choose better where to use mallocarray(9). We still have more uses of mallocarray(9) but hopefully this is enough to bring swap usage to a reasonable level. Reported by: wosch PR: 225197
|
#
3b0a4e40 |
|
15-Jan-2018 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
netgraph: make some use of mallocarray(9). Focus on code where we are doing multiplications within malloc(9). None of these ire likely to overflow, however the change is still useful as some static checkers can benefit from the allocation attributes we use for mallocarray. This initial sweep only covers malloc(9) calls with M_NOWAIT. No good reason but I started doing the changes before r327796 and at that time it was convenient to make sure the sorrounding code could handle NULL values. X-Differential revision: https://reviews.freebsd.org/D13837
|
#
053359b7 |
|
29-Apr-2016 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/netgraph: spelling fixes in comments. No functional change.
|
#
dd10c1e2 |
|
01-Nov-2014 |
Gleb Smirnoff <glebius@FreeBSD.org> |
NG_NODE_NAME(node) is always not NULL. Use correct macro. Submitted by: Dmitry Luhtionov <dmitryluhtionov gmail.com>
|
#
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.
|
#
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
|
#
d745c852 |
|
06-Nov-2011 |
Ed Schouten <ed@FreeBSD.org> |
Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. This means that their use is restricted to a single C file.
|
#
674d86bf |
|
18-Apr-2011 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Node constructor methods are supposed to be called in syscall context always. Convert nodes to consistently use M_WAITOK flag for memory allocation. Reviewed by: julian
|
#
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.
|
#
7c810230 |
|
16-May-2010 |
Marko Zec <zec@FreeBSD.org> |
MFC r207680: Add an optional "persistent" flag to ng_hub and ng_bridge, which if set, disables automatic node shutdown when the last hook gets disconnected. Reviewed by: julian
|
#
f8aab721 |
|
05-May-2010 |
Marko Zec <zec@FreeBSD.org> |
Add an optional "persistent" flag to ng_hub and ng_bridge, which if set, disables automatic node shutdown when the last hook gets disconnected. Reviewed by: julian
|
#
2ae7ec29 |
|
07-Feb-2010 |
Julian Elischer <julian@FreeBSD.org> |
MFC of 197952 and 198075 Virtualize the pfil hooks so that different jails may chose different packet filters. ALso allows ipfw to be enabled on on ejail and disabled on another. In 8.0 it's a global setting. and Unbreak the VIMAGE build with IPSEC, broken with r197952 by virtualizing the pfil hooks. For consistency add the V_ to virtualize the pfil hooks in here as well.
|
#
5f2e1642 |
|
15-Dec-2009 |
Luigi Rizzo <luigi@FreeBSD.org> |
add ip_fw_private.h to ng_ipfw.c, forgotten in previous commit; comment out remove ip_fw.h from ng_bridge.c, as it seems unused. MFC after: 1 month
|
#
0b4b0b0f |
|
10-Oct-2009 |
Julian Elischer <julian@FreeBSD.org> |
Virtualize the pfil hooks so that different jails may chose different packet filters. ALso allows ipfw to be enabled on on ejail and disabled on another. In 8.0 it's a global setting. Sitting aroung in tree waiting to commit for: 2 months MFC after: 2 months
|
#
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)
|
#
385195c0 |
|
10-Dec-2008 |
Marko Zec <zec@FreeBSD.org> |
Conditionally compile out V_ globals while instantiating the appropriate container structures, depending on VIMAGE_GLOBALS compile time option. Make VIMAGE_GLOBALS a new compile-time option, which by default will not be defined, resulting in instatiations of global variables selected for V_irtualization (enclosed in #ifdef VIMAGE_GLOBALS blocks) to be effectively compiled out. Instantiate new global container structures to hold V_irtualized variables: vnet_net_0, vnet_inet_0, vnet_inet6_0, vnet_ipsec_0, vnet_netgraph_0, and vnet_gif_0. Update the VSYM() macro so that depending on VIMAGE_GLOBALS the V_ macros resolve either to the original globals, or to fields inside container structures, i.e. effectively #ifdef VIMAGE_GLOBALS #define V_rt_tables rt_tables #else #define V_rt_tables vnet_net_0._rt_tables #endif Update SYSCTL_V_*() macros to operate either on globals or on fields inside container structs. Extend the internal kldsym() lookups with the ability to resolve selected fields inside the virtualization container structs. This applies only to the fields which are explicitly registered for kldsym() visibility via VNET_MOD_DECLARE() and vnet_mod_register(), currently this is done only in sys/net/if.c. Fix a few broken instances of MODULE_GLOBAL() macro use in SCTP code, and modify the MODULE_GLOBAL() macro to resolve to V_ macros, which in turn result in proper code being generated depending on VIMAGE_GLOBALS. De-virtualize local static variables in sys/contrib/pf/net/pf_subr.c which were prematurely V_irtualized by automated V_ prepending scripts during earlier merging steps. PF virtualization will be done separately, most probably after next PF import. Convert a few variable initializations at instantiation to initialization in init functions, most notably in ipfw. Also convert TUNABLE_INT() initializers for V_ variables to TUNABLE_FETCH_INT() in initializer functions. Discussed at: devsummit Strassburg Reviewed by: bz, julian Approved by: julian (mentor) Obtained from: //depot/projects/vimage-commit2/... X-MFC after: never Sponsored by: NLnet Foundation, The FreeBSD Foundation
|
#
e11e3f18 |
|
23-Oct-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Fix a number of style issues in the MALLOC / FREE commit. I've tried to be careful not to fix anything that was already broken; the NFSv4 code is particularly bad in this respect.
|
#
1ede983c |
|
23-Oct-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Retire the MALLOC and FREE macros. They are an abomination unto style(9). MFC after: 3 months
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
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
|
#
195cf617 |
|
09-Feb-2005 |
Ruslan Ermilov <ru@FreeBSD.org> |
In revision 1.29 timeout() was converted to ng_callout(). The difference is that the callout function installed via the ng_callout() method is guaranteed to NOT fire after the shutdown method was run (when a node is marked NGF_INVALID). Also, the shutdown method and the callout function are guaranteed to NOT run at the same time, as both require the writer lock. Thus we can safely ignore a zero return value from ng_uncallout() (callout_stop()) in shutdown methods, and go on with freeing the node. The said revision broke the node shutdown -- ng_bridge_timeout() is no longer fired after ng_bridge_shutdown() was run, resulting in a memory leak, dead nodes, and inability to unload the module. Fix this by cancelling the callout on shutdown, and moving part responsible for freeing a node resources from ng_bridge_timer() to ng_bridge_shutdown(). Noticed by: ru Submitted by: glebius, ru
|
#
c398230b |
|
06-Jan-2005 |
Warner Losh <imp@FreeBSD.org> |
/* -> /*- for license, minor formatting changes
|
#
e0d32af7 |
|
14-Dec-2004 |
Gleb Smirnoff <glebius@FreeBSD.org> |
- Use ng_callout() instead of timeout. - Schedule next timeout *after* finishing job of the current one. - Remove spl(9) calls. Tested by: ru Reviewed by: julian
|
#
9b932e9e |
|
17-Aug-2004 |
Andre Oppermann <andre@FreeBSD.org> |
Convert ipfw to use PFIL_HOOKS. This is change is transparent to userland and preserves the ipfw ABI. The ipfw core packet inspection and filtering functions have not been changed, only how ipfw is invoked is different. However there are many changes how ipfw is and its add-on's are handled: In general ipfw is now called through the PFIL_HOOKS and most associated magic, that was in ip_input() or ip_output() previously, is now done in ipfw_check_[in|out]() in the ipfw PFIL handler. IPDIVERT is entirely handled within the ipfw PFIL handlers. A packet to be diverted is checked if it is fragmented, if yes, ip_reass() gets in for reassembly. If not, or all fragments arrived and the packet is complete, divert_packet is called directly. For 'tee' no reassembly attempt is made and a copy of the packet is sent to the divert socket unmodified. The original packet continues its way through ip_input/output(). ipfw 'forward' is done via m_tag's. The ipfw PFIL handlers tag the packet with the new destination sockaddr_in. A check if the new destination is a local IP address is made and the m_flags are set appropriately. ip_input() and ip_output() have some more work to do here. For ip_input() the m_flags are checked and a packet for us is directly sent to the 'ours' section for further processing. Destination changes on the input path are only tagged and the 'srcrt' flag to ip_forward() is set to disable destination checks and ICMP replies at this stage. The tag is going to be handled on output. ip_output() again checks for m_flags and the 'ours' tag. If found, the packet will be dropped back to the IP netisr where it is going to be picked up by ip_input() again and the directly sent to the 'ours' section. When only the destination changes, the route's 'dst' is overwritten with the new destination from the forward m_tag. Then it jumps back at the route lookup again and skips the firewall check because it has been marked with M_SKIP_FIREWALL. ipfw 'forward' has to be compiled into the kernel with 'option IPFIREWALL_FORWARD' to enable it. DUMMYNET is entirely handled within the ipfw PFIL handlers. A packet for a dummynet pipe or queue is directly sent to dummynet_io(). Dummynet will then inject it back into ip_input/ip_output() after it has served its time. Dummynet packets are tagged and will continue from the next rule when they hit the ipfw PFIL handlers again after re-injection. BRIDGING and IPFW_ETHER are not changed yet and use ipfw_chk() directly as they did before. Later this will be changed to dedicated ETHER PFIL_HOOKS. More detailed changes to the code: conf/files Add netinet/ip_fw_pfil.c. conf/options Add IPFIREWALL_FORWARD option. modules/ipfw/Makefile Add ip_fw_pfil.c. net/bridge.c Disable PFIL_HOOKS if ipfw for bridging is active. Bridging ipfw is still directly invoked to handle layer2 headers and packets would get a double ipfw when run through PFIL_HOOKS as well. netinet/ip_divert.c Removed divert_clone() function. It is no longer used. netinet/ip_dummynet.[ch] Neither the route 'ro' nor the destination 'dst' need to be stored while in dummynet transit. Structure members and associated macros are removed. netinet/ip_fastfwd.c Removed all direct ipfw handling code and replace it with the new 'ipfw forward' handling code. netinet/ip_fw.h Removed 'ro' and 'dst' from struct ip_fw_args. netinet/ip_fw2.c (Re)moved some global variables and the module handling. netinet/ip_fw_pfil.c New file containing the ipfw PFIL handlers and module initialization. netinet/ip_input.c Removed all direct ipfw handling code and replace it with the new 'ipfw forward' handling code. ip_forward() does not longer require the 'next_hop' struct sockaddr_in argument. Disable early checks if 'srcrt' is set. netinet/ip_output.c Removed all direct ipfw handling code and replace it with the new 'ipfw forward' handling code. netinet/ip_var.h Add ip_reass() as general function. (Used from ipfw PFIL handlers for IPDIVERT.) netinet/raw_ip.c Directly check if ipfw and dummynet control pointers are active. netinet/tcp_input.c Rework the 'ipfw forward' to local code to work with the new way of forward tags. netinet/tcp_sack.c Remove include 'opt_ipfw.h' which is not needed here. sys/mbuf.h Remove m_claim_next() macro which was exclusively for ipfw 'forward' and is no longer needed. Approved by: re (scottl)
|
#
be4252b3 |
|
20-Jul-2004 |
Julian Elischer <julian@FreeBSD.org> |
Slight cosmetic changes. Also introduce a macro to be called by persistent nodes to signal their persistence during shutdown to hide this mechanism from the node author. Make node flags have a consistent style in naming. Document the change.
|
#
3ca24c28 |
|
26-Jun-2004 |
Julian Elischer <julian@FreeBSD.org> |
Having moved metadata usage to mbuf tags, remove code that supports the old way of doing it. Submitted by: Gleb Smirnoff <glebius@cell.sick.ru>
|
#
114bf091 |
|
22-Jun-2004 |
Brian Feldman <green@FreeBSD.org> |
Fix a problem with multiple-delivery (i.e. broadcast) in ng_bridge. Only the first link0..link$NLINKS hooks would be utilized, whereas the link hooks may be connected sparsely. Add a counter variable so that the link hook array is only traversed while there is still work to do, but that it continues up to the end if it has to.
|
#
f8aae777 |
|
28-May-2004 |
Julian Elischer <julian@FreeBSD.org> |
Switch to using C99 sparse initialisers for the type methods array. Should make no binary difference. Submitted by: Gleb Smirnoff <glebius@cell.sick.ru> Reviewed by: Harti Brandt <harti@freebsd.org> MFC after: 1 week
|
#
87e2c66a |
|
26-Jan-2004 |
Hartmut Brandt <harti@FreeBSD.org> |
Get rid of the deprecated *LEN constants in favour of the new *SIZ constants that include the trailing \0 byte.
|
#
85a1bad7 |
|
18-Dec-2003 |
Ruslan Ermilov <ru@FreeBSD.org> |
Removed an outdated comment. Submitted by: archie
|
#
8c7e4101 |
|
16-Dec-2003 |
Ruslan Ermilov <ru@FreeBSD.org> |
Made the Ethernet address parse type standard. OK'ed by: archie
|
#
9bf40ede |
|
31-Oct-2003 |
Brooks Davis <brooks@FreeBSD.org> |
Replace the if_name and if_unit members of struct ifnet with new members if_xname, if_dname, and if_dunit. if_xname is the name of the interface and if_dname/unit are the driver name and instance. This change paves the way for interface renaming and enhanced pseudo device creation and configuration symantics. Approved By: re (in principle) Reviewed By: njl, imp Tested On: i386, amd64, sparc64 Obtained From: NetBSD (if_xname)
|
#
95f04def |
|
15-May-2003 |
Julian Elischer <julian@FreeBSD.org> |
fix a cut-n-paste error. in the case where the bridge node was closed down but a timeout still applied to it, the final reference to the node was freeing the private data structure using the wrong malloc type. Approved by: re@
|
#
a163d034 |
|
18-Feb-2003 |
Warner Losh <imp@FreeBSD.org> |
Back out M_* changes, per decision of the TRB. Approved by: trb
|
#
44956c98 |
|
21-Jan-2003 |
Alfred Perlstein <alfred@FreeBSD.org> |
Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
|
#
86fea6be |
|
19-Dec-2002 |
Bosko Milekic <bmilekic@FreeBSD.org> |
o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and the mbuf allocator flags {M_TRYWAIT, M_DONTWAIT}. o Fix a bpf_compat issue where malloc() was defined to just call bpf_alloc() and pass the 'canwait' flag(s) along. It's been changed to call bpf_alloc() but pass the corresponding M_TRYWAIT or M_DONTWAIT flag (and only one of those two). Submitted by: Hiten Pandya <hiten@unixdaemons.com> (hiten->commit_count++)
|
#
8214d60e |
|
08-Nov-2002 |
John Baldwin <jhb@FreeBSD.org> |
Use intptr_t to fix various sizeof(int) != sizeof(void *) warnings.
|
#
f0184ff8 |
|
31-May-2002 |
Archie Cobbs <archie@FreeBSD.org> |
Fix GCC warnings caused by initializing a zero length array. In the process, simply things a bit by getting rid of 'struct ng_parse_struct_info' which was useless because it only contained one field. MFC after: 2 weeks
|
#
b9bc94b3 |
|
15-Dec-2001 |
Archie Cobbs <archie@FreeBSD.org> |
Typo.
|
#
6c12c2b1 |
|
15-Dec-2001 |
Archie Cobbs <archie@FreeBSD.org> |
Don't free a structure containing a 'struct callout' structure while that callout is still pending. MFC after: 3 days
|
#
6e551fb6 |
|
10-Dec-2001 |
David E. O'Brien <obrien@FreeBSD.org> |
Update to C99, s/__FUNCTION__/__func__/, also don't use ANSI string concatenation.
|
#
9c8c302f |
|
10-Jan-2001 |
Julian Elischer <julian@FreeBSD.org> |
Fix some memory leaks Add memory leak detection assitance.
|
#
30400f03 |
|
07-Jan-2001 |
Julian Elischer <julian@FreeBSD.org> |
Part 2 of the netgraph rewrite. This is mostly cosmetic changes, (though I caught a bug or two while makeing them) Reviewed by: archie@freebsd.org
|
#
069154d5 |
|
05-Jan-2001 |
Julian Elischer <julian@FreeBSD.org> |
Rewrite of netgraph to start getting ready for SMP. This version is functional and is aproaching solid.. notice I said APROACHING. There are many node types I cannot test I have tested: echo hole ppp socket vjc iface tee bpf async tty The rest compile and "Look" right. More changes to follow. DEBUGGING is enabled in this code to help if people have problems.
|
#
589f6ed8 |
|
18-Dec-2000 |
Julian Elischer <julian@FreeBSD.org> |
Divorce the kernel binary ABI version number from the message format version number. (userland programs should not need to be recompiled when the netgraph kernel internal ABI is changed. Also fix modules that don;t handle the fact that a caller may not supply a return message pointer. (benign at the moment because the calling code checks, but that will change)
|
#
859a4d16 |
|
12-Dec-2000 |
Julian Elischer <julian@FreeBSD.org> |
Reviewed by: Archie@freebsd.org This clears out my outstanding netgraph changes. There is a netgraph change of design in the offing and this is to some extent a superset of soem of the new functionality and some of the old functionality that may be removed. This code works as before, but allows some new features that I want to work with and evaluate. It is the basis for a version of netgraph with integral locking for SMP use. This is running on my test machine with no new problems :-)
|
#
fe96e26d |
|
26-Nov-2000 |
Jonathan Lemon <jlemon@FreeBSD.org> |
Fix another callout_init() that I missed.
|
#
99cdf4cc |
|
18-Nov-2000 |
David Malone <dwmalone@FreeBSD.org> |
Add the use of M_ZERO to netgraph. Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net> Submitted by: archie Approved by: archie
|
#
a89effcd |
|
09-Oct-2000 |
Archie Cobbs <archie@FreeBSD.org> |
Fix typo in NETGRAPH_INIT() macro.
|
#
763fcb92 |
|
23-Sep-2000 |
Archie Cobbs <archie@FreeBSD.org> |
Use m_dup() instead of m_copypacket() for the time being. Not all of the code in the kernel properly checks for read-onlyness before writing into an mbuf data area. When that code is fixed, the m_dup() can go back to being m_copypacket(). Requested by: nsayer
|
#
ed2dbd31 |
|
31-Aug-2000 |
Archie Cobbs <archie@FreeBSD.org> |
New netgraph node type for Ethernet bridging. No ipfw support yet.
|