#ifndef __MAC80211_DEBUG_H #define __MAC80211_DEBUG_H #include #ifdef CONFIG_MAC80211_OCB_DEBUG #define MAC80211_OCB_DEBUG 1 #else #define MAC80211_OCB_DEBUG 0 #endif #ifdef CONFIG_MAC80211_IBSS_DEBUG #define MAC80211_IBSS_DEBUG 1 #else #define MAC80211_IBSS_DEBUG 0 #endif #ifdef CONFIG_MAC80211_PS_DEBUG #define MAC80211_PS_DEBUG 1 #else #define MAC80211_PS_DEBUG 0 #endif #ifdef CONFIG_MAC80211_HT_DEBUG #define MAC80211_HT_DEBUG 1 #else #define MAC80211_HT_DEBUG 0 #endif #ifdef CONFIG_MAC80211_MPL_DEBUG #define MAC80211_MPL_DEBUG 1 #else #define MAC80211_MPL_DEBUG 0 #endif #ifdef CONFIG_MAC80211_MPATH_DEBUG #define MAC80211_MPATH_DEBUG 1 #else #define MAC80211_MPATH_DEBUG 0 #endif #ifdef CONFIG_MAC80211_MHWMP_DEBUG #define MAC80211_MHWMP_DEBUG 1 #else #define MAC80211_MHWMP_DEBUG 0 #endif #ifdef CONFIG_MAC80211_MESH_SYNC_DEBUG #define MAC80211_MESH_SYNC_DEBUG 1 #else #define MAC80211_MESH_SYNC_DEBUG 0 #endif #ifdef CONFIG_MAC80211_MESH_CSA_DEBUG #define MAC80211_MESH_CSA_DEBUG 1 #else #define MAC80211_MESH_CSA_DEBUG 0 #endif #ifdef CONFIG_MAC80211_MESH_PS_DEBUG #define MAC80211_MESH_PS_DEBUG 1 #else #define MAC80211_MESH_PS_DEBUG 0 #endif #ifdef CONFIG_MAC80211_TDLS_DEBUG #define MAC80211_TDLS_DEBUG 1 #else #define MAC80211_TDLS_DEBUG 0 #endif #ifdef CONFIG_MAC80211_STA_DEBUG #define MAC80211_STA_DEBUG 1 #else #define MAC80211_STA_DEBUG 0 #endif #ifdef CONFIG_MAC80211_MLME_DEBUG #define MAC80211_MLME_DEBUG 1 #else #define MAC80211_MLME_DEBUG 0 #endif #ifdef CONFIG_MAC80211_MESSAGE_TRACING void __sdata_info(const char *fmt, ...) __printf(1, 2); void __sdata_dbg(bool print, const char *fmt, ...) __printf(2, 3); void __sdata_err(const char *fmt, ...) __printf(1, 2); void __wiphy_dbg(struct wiphy *wiphy, bool print, const char *fmt, ...) __printf(3, 4); #define _sdata_info(sdata, fmt, ...) \ __sdata_info("%s: " fmt, (sdata)->name, ##__VA_ARGS__) #define _sdata_dbg(print, sdata, fmt, ...) \ __sdata_dbg(print, "%s: " fmt, (sdata)->name, ##__VA_ARGS__) #define _sdata_err(sdata, fmt, ...) \ __sdata_err("%s: " fmt, (sdata)->name, ##__VA_ARGS__) #define _wiphy_dbg(print, wiphy, fmt, ...) \ __wiphy_dbg(wiphy, print, fmt, ##__VA_ARGS__) #else #define _sdata_info(sdata, fmt, ...) \ do { \ pr_info("%s: " fmt, \ (sdata)->name, ##__VA_ARGS__); \ } while (0) #define _sdata_dbg(print, sdata, fmt, ...) \ do { \ if (print) \ pr_debug("%s: " fmt, \ (sdata)->name, ##__VA_ARGS__); \ } while (0) #define _sdata_err(sdata, fmt, ...) \ do { \ pr_err("%s: " fmt, \ (sdata)->name, ##__VA_ARGS__); \ } while (0) #define _wiphy_dbg(print, wiphy, fmt, ...) \ do { \ if (print) \ wiphy_dbg((wiphy), fmt, ##__VA_ARGS__); \ } while (0) #endif #define sdata_info(sdata, fmt, ...) \ _sdata_info(sdata, fmt, ##__VA_ARGS__) #define sdata_err(sdata, fmt, ...) \ _sdata_err(sdata, fmt, ##__VA_ARGS__) #define sdata_dbg(sdata, fmt, ...) \ _sdata_dbg(1, sdata, fmt, ##__VA_ARGS__) #define ht_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_HT_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define ht_dbg_ratelimited(sdata, fmt, ...) \ _sdata_dbg(MAC80211_HT_DEBUG && net_ratelimit(), \ sdata, fmt, ##__VA_ARGS__) #define ocb_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_OCB_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define ibss_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_IBSS_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define ps_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_PS_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define ps_dbg_hw(hw, fmt, ...) \ _wiphy_dbg(MAC80211_PS_DEBUG, \ (hw)->wiphy, fmt, ##__VA_ARGS__) #define ps_dbg_ratelimited(sdata, fmt, ...) \ _sdata_dbg(MAC80211_PS_DEBUG && net_ratelimit(), \ sdata, fmt, ##__VA_ARGS__) #define mpl_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MPL_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define mpath_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MPATH_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define mhwmp_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MHWMP_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define msync_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MESH_SYNC_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define mcsa_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MESH_CSA_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define mps_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MESH_PS_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define tdls_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_TDLS_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define sta_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_STA_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define mlme_dbg(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MLME_DEBUG, \ sdata, fmt, ##__VA_ARGS__) #define mlme_dbg_ratelimited(sdata, fmt, ...) \ _sdata_dbg(MAC80211_MLME_DEBUG && net_ratelimit(), \ sdata, fmt, ##__VA_ARGS__) #endif /* __MAC80211_DEBUG_H */ /linux/net-next.git/commit/?id=73c25fb139337ac4fe1695ae3c056961855594db'>73c25fb139337ac4fe1695ae3c056961855594db (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next
Pablo Neira Ayuso says: ==================== Netfilter/IPVS updates for net-next The following patchset contains a large Netfilter update for net-next, to summarise: 1) Add support for stateful objects. This series provides a nf_tables native alternative to the extended accounting infrastructure for nf_tables. Two initial stateful objects are supported: counters and quotas. Objects are identified by a user-defined name, you can fetch and reset them anytime. You can also use a maps to allow fast lookups using any arbitrary key combination. More info at: http://marc.info/?l=netfilter-devel&m=148029128323837&w=2 2) On-demand registration of nf_conntrack and defrag hooks per netns. Register nf_conntrack hooks if we have a stateful ruleset, ie. state-based filtering or NAT. The new nf_conntrack_default_on sysctl enables this from newly created netnamespaces. Default behaviour is not modified. Patches from Florian Westphal. 3) Allocate 4k chunks and then use these for x_tables counter allocation requests, this improves ruleset load time and also datapath ruleset evaluation, patches from Florian Westphal. 4) Add support for ebpf to the existing x_tables bpf extension. From Willem de Bruijn. 5) Update layer 4 checksum if any of the pseudoheader fields is updated. This provides a limited form of 1:1 stateless NAT that make sense in specific scenario, eg. load balancing. 6) Add support to flush sets in nf_tables. This series comes with a new set->ops->deactivate_one() indirection given that we have to walk over the list of set elements, then deactivate them one by one. The existing set->ops->deactivate() performs an element lookup that we don't need. 7) Two patches to avoid cloning packets, thus speed up packet forwarding via nft_fwd from ingress. From Florian Westphal. 8) Two IPVS patches via Simon Horman: Decrement ttl in all modes to prevent infinite loops, patch from Dwip Banerjee. And one minor refactoring from Gao feng. 9) Revisit recent log support for nf_tables netdev families: One patch to ensure that we correctly handle non-ethernet packets. Another patch to add missing logger definition for netdev. Patches from Liping Zhang. 10) Three patches for nft_fib, one to address insufficient register initialization and another to solve incorrect (although harmless) byteswap operation. Moreover update xt_rpfilter and nft_fib to match lbcast packets with zeronet as source, eg. DHCP Discover packets (0.0.0.0 -> 255.255.255.255). Also from Liping Zhang. 11) Built-in DCCP, SCTP and UDPlite conntrack and NAT support, from Davide Caratti. While DCCP is rather hopeless lately, and UDPlite has been broken in many-cast mode for some little time, let's give them a chance by placing them at the same level as other existing protocols. Thus, users don't explicitly have to modprobe support for this and NAT rules work for them. Some people point to the lack of support in SOHO Linux-based routers that make deployment of new protocols harder. I guess other middleboxes outthere on the Internet are also to blame. Anyway, let's see if this has any impact in the midrun. 12) Skip software SCTP software checksum calculation if the NIC comes with SCTP checksum offload support. From Davide Caratti. 13) Initial core factoring to prepare conversion to hook array. Three patches from Aaron Conole. 14) Gao Feng made a wrong conversion to switch in the xt_multiport extension in a patch coming in the previous batch. Fix it in this batch. 15) Get vmalloc call in sync with kmalloc flags to avoid a warning and likely OOM killer intervention from x_tables. From Marcelo Ricardo Leitner. 16) Update Arturo Borrero's email address in all source code headers. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat