[NETFILTER]: nf_queue: move list_head/skb/id to struct nf_info
Move common fields for queue management to struct nf_info and rename it to struct nf_queue_entry. The avoids one allocation/free per packet and simplifies the code a bit. Alternatively we could add some private room at the tail, but since all current users use identical structs this seems easier. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
7a6c6653b3
commit
02f014d888
@ -123,11 +123,12 @@ struct ip_rt_info {
|
||||
u_int8_t tos;
|
||||
};
|
||||
|
||||
static void nf_ip_saveroute(const struct sk_buff *skb, struct nf_info *info)
|
||||
static void nf_ip_saveroute(const struct sk_buff *skb,
|
||||
struct nf_queue_entry *entry)
|
||||
{
|
||||
struct ip_rt_info *rt_info = nf_info_reroute(info);
|
||||
struct ip_rt_info *rt_info = nf_queue_entry_reroute(entry);
|
||||
|
||||
if (info->hook == NF_INET_LOCAL_OUT) {
|
||||
if (entry->hook == NF_INET_LOCAL_OUT) {
|
||||
const struct iphdr *iph = ip_hdr(skb);
|
||||
|
||||
rt_info->tos = iph->tos;
|
||||
@ -136,11 +137,12 @@ static void nf_ip_saveroute(const struct sk_buff *skb, struct nf_info *info)
|
||||
}
|
||||
}
|
||||
|
||||
static int nf_ip_reroute(struct sk_buff *skb, const struct nf_info *info)
|
||||
static int nf_ip_reroute(struct sk_buff *skb,
|
||||
const struct nf_queue_entry *entry)
|
||||
{
|
||||
const struct ip_rt_info *rt_info = nf_info_reroute(info);
|
||||
const struct ip_rt_info *rt_info = nf_queue_entry_reroute(entry);
|
||||
|
||||
if (info->hook == NF_INET_LOCAL_OUT) {
|
||||
if (entry->hook == NF_INET_LOCAL_OUT) {
|
||||
const struct iphdr *iph = ip_hdr(skb);
|
||||
|
||||
if (!(iph->tos == rt_info->tos
|
||||
|
Reference in New Issue
Block a user