Various minor whitespace cleanupsAccumulated along the way.
Remove no longer needed casts for radix routines
net/radix: Update rn_inithead() parameter type to avoid boring castsChange to use the proper 'struct radix_node_head **' instead of anopaque 'void **'.
kernel: Use rn_flush()/rn_freehead() to flush/delete radix trees
Update rn_inithead() users to switch to byte offset
net/radix: Rename Free() to R_Free() to better align with R_Malloc()Also reduces the chances of conflicting with other macros.
network - Remove host-order translations of ipv4 ip_off and ip_len* Do not translate ip_off and ip_len to host order and then back again in the network stack. The fields are now left in network
network - Remove host-order translations of ipv4 ip_off and ip_len* Do not translate ip_off and ip_len to host order and then back again in the network stack. The fields are now left in network order.
show more ...
kernel: Rename BUILDING_WITH_KERNEL to KERNBUILDDIR.Fits better with e.g. KERNCONFDIR.Add a small paragraph in kmod.mk which was taken from FreeBSD.
kernel: Remove <sys/mplock2.h> from all files that do not need it.
kernel - Replace kmalloc_cachealign() with kmalloc(... M_CACHEALIGN)* Add M_CACHEALIGN, which ensures that the result is aligned to a cache line.* Remove kmalloc_cachealign(), replacing all use
kernel - Replace kmalloc_cachealign() with kmalloc(... M_CACHEALIGN)* Add M_CACHEALIGN, which ensures that the result is aligned to a cache line.* Remove kmalloc_cachealign(), replacing all uses with kmalloc using M_CACHEALIGN.
kernel - Rewrite the callout_*() API* Rewrite the entire API from scratch and improve compatibility with FreeBSD. This is not an attempt to achieve full API compatibility, as FreeBSD's API has
kernel - Rewrite the callout_*() API* Rewrite the entire API from scratch and improve compatibility with FreeBSD. This is not an attempt to achieve full API compatibility, as FreeBSD's API has unnecessary complexity that coders would frequently make mistakes interpreting.* Remove the IPI mechanisms in favor of fine-grained spin-locks instead.* Add some robustness features in an attempt to track down corrupted callwheel lists due to originating subsystems freeing structures out from under an active callout.* The code supports a full-blown type-stable/adhoc-reuse structural separation between the front-end and the back-end, but this feature is currently not operational and may be removed at some future point. Instead we currently just embed the struct _callout inside the struct callout.* Replace callout_stop_sync() with callout_cancel().* callout_drain() is now implemented as a synchronous cancel instead of an asynchronous stop, which is closer to the FreeBSD API and expected operation for ported code (usb stack in particular). We will just have to fix any deadlocks which we come across.* Retain our callout_terminate() function as the 'better' way to stop using a callout, as it will not only cancel the callout but also de-flag the structure so it can no longer be used.
ipfw: Add icmpcodes support.
ipfw: ICMP_MAXTYPE could be any value; don't assume it's < 32It is 40 as of this commit.
ipfw: Support all possible ICMP types.
ipfw: Define instruction size max.
ipfw: Factor out ipfw_init_args()
ipfw: Flush the rules before unload the module.
ipfw: Factor out ipfw_defrag_redispatch.Remove no longer needed IP_FW_CONTINUE.
ipfw: Implement state based "redirect", i.e. without using libalias.Redirection creates two states, i.e. one before the translation (xlat0)and one after the translation (xlat1). If the hash of th
ipfw: Implement state based "redirect", i.e. without using libalias.Redirection creates two states, i.e. one before the translation (xlat0)and one after the translation (xlat1). If the hash of the translatedpacket indicates that it is owned by a remote CPU:- If the packet triggers the state pair creation, the 'xlat1' will be piggybacked by the translated packet, which will be forwarded to the remote CPU for further evalution. And the 'xlat1' will be installed on the remote CPU before the evalution of the translated packet.- Else only the translated packet will be forwarded to the remote CPU for further evalution.The 'xlat1' is called the slave state, which will be deleted only whenthe 'xlat0' (the master state) is deleted. The state pair is alwaysdeleted on the CPU owning the 'xlat1'; the 'xlat0' will be forwardedthere.The reference counting of the state pair is maintained independentlyin each state, the memory of the state pair will be freed only afterthe sum of the counter in each state reaches 0. This avoids expensiveper-packet atomic ops.As far as I have tested, this implementation of "redirect" does _not_introduce any noticeable performance reduction, latency increasing orlatency destability.This commit makes most of the necessary bits for NAT ready too.
ipfw: Add interface network filter.This eases src/dst matching if the IP address is assigned to the interfacedynamically, e.g. by DHCP.
ipfw: Add interface IP filter.This eases src/dst matching if the IP address is assigned to the interfacedynamically, e.g. by DHCP.
ipfw: Factor out fucntion to setup local variables.
ipfw: Add ipfrag filter.Unlike 'frag' filter, which only matches non-first IP fragments,this filter matches all IP fragments.
ipfw: Remove unnecessary complexity
ipfw: Add defrag action.IP fragment reassembling is almost required for stateful firewall,and will be needed for in-kernel NAT.NOTE: Reassemabled IP packets will be passed to the next rule forf
ipfw: Add defrag action.IP fragment reassembling is almost required for stateful firewall,and will be needed for in-kernel NAT.NOTE: Reassemabled IP packets will be passed to the next rule forfurther evaluation.
12345678