Skip to content

Commit 82e91ff

Browse files
tgrafDavid S. Miller
authored andcommitted
[NET]: Turn nfmark into generic mark
nfmark is being used in various subsystems and has become the defacto mark field for all kinds of packets. Therefore it makes sense to rename it to `mark' and remove the dependency on CONFIG_NETFILTER. Signed-off-by: Thomas Graf <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 0afc46c commit 82e91ff

28 files changed

+59
-68
lines changed

include/linux/skbuff.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ enum {
216216
* @tail: Tail pointer
217217
* @end: End pointer
218218
* @destructor: Destruct function
219-
* @nfmark: Can be used for communication between hooks
219+
* @mark: Generic packet mark
220220
* @nfct: Associated connection, if any
221221
* @ipvs_property: skbuff is owned by ipvs
222222
* @nfctinfo: Relationship of this skb to the connection
@@ -295,7 +295,6 @@ struct sk_buff {
295295
#ifdef CONFIG_BRIDGE_NETFILTER
296296
struct nf_bridge_info *nf_bridge;
297297
#endif
298-
__u32 nfmark;
299298
#endif /* CONFIG_NETFILTER */
300299
#ifdef CONFIG_NET_SCHED
301300
__u16 tc_index; /* traffic control index */
@@ -310,6 +309,7 @@ struct sk_buff {
310309
__u32 secmark;
311310
#endif
312311

312+
__u32 mark;
313313

314314
/* These elements must be at the end, see alloc_skb() for details. */
315315
unsigned int truesize;

net/bridge/netfilter/ebt_mark.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ static int ebt_target_mark(struct sk_buff **pskb, unsigned int hooknr,
2525
int action = info->target & -16;
2626

2727
if (action == MARK_SET_VALUE)
28-
(*pskb)->nfmark = info->mark;
28+
(*pskb)->mark = info->mark;
2929
else if (action == MARK_OR_VALUE)
30-
(*pskb)->nfmark |= info->mark;
30+
(*pskb)->mark |= info->mark;
3131
else if (action == MARK_AND_VALUE)
32-
(*pskb)->nfmark &= info->mark;
32+
(*pskb)->mark &= info->mark;
3333
else
34-
(*pskb)->nfmark ^= info->mark;
34+
(*pskb)->mark ^= info->mark;
3535

3636
return info->target | -16;
3737
}

net/bridge/netfilter/ebt_mark_m.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ static int ebt_filter_mark(const struct sk_buff *skb,
1919
struct ebt_mark_m_info *info = (struct ebt_mark_m_info *) data;
2020

2121
if (info->bitmask & EBT_MARK_OR)
22-
return !(!!(skb->nfmark & info->mask) ^ info->invert);
23-
return !(((skb->nfmark & info->mask) == info->mark) ^ info->invert);
22+
return !(!!(skb->mark & info->mask) ^ info->invert);
23+
return !(((skb->mark & info->mask) == info->mark) ^ info->invert);
2424
}
2525

2626
static int ebt_mark_check(const char *tablename, unsigned int hookmask,

net/bridge/netfilter/ebt_ulog.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ static void ebt_ulog_packet(unsigned int hooknr, const struct sk_buff *skb,
168168
if (ub->qlen == 1)
169169
skb_set_timestamp(ub->skb, &pm->stamp);
170170
pm->data_len = copy_len;
171-
pm->mark = skb->nfmark;
171+
pm->mark = skb->mark;
172172
pm->hook = hooknr;
173173
if (uloginfo->prefix != NULL)
174174
strcpy(pm->prefix, uloginfo->prefix);

net/core/skbuff.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -473,8 +473,8 @@ struct sk_buff *skb_clone(struct sk_buff *skb, gfp_t gfp_mask)
473473
#endif
474474
C(protocol);
475475
n->destructor = NULL;
476+
C(mark);
476477
#ifdef CONFIG_NETFILTER
477-
C(nfmark);
478478
C(nfct);
479479
nf_conntrack_get(skb->nfct);
480480
C(nfctinfo);
@@ -534,8 +534,8 @@ static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
534534
new->pkt_type = old->pkt_type;
535535
new->tstamp = old->tstamp;
536536
new->destructor = NULL;
537+
new->mark = old->mark;
537538
#ifdef CONFIG_NETFILTER
538-
new->nfmark = old->nfmark;
539539
new->nfct = old->nfct;
540540
nf_conntrack_get(old->nfct);
541541
new->nfctinfo = old->nfctinfo;

net/decnet/dn_route.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,7 +1236,7 @@ static int dn_route_input_slow(struct sk_buff *skb)
12361236
.saddr = cb->src,
12371237
.scope = RT_SCOPE_UNIVERSE,
12381238
#ifdef CONFIG_DECNET_ROUTE_FWMARK
1239-
.fwmark = skb->nfmark
1239+
.fwmark = skb->mark
12401240
#endif
12411241
} },
12421242
.iif = skb->dev->ifindex };
@@ -1458,7 +1458,7 @@ int dn_route_input(struct sk_buff *skb)
14581458
(rt->fl.fld_dst == cb->dst) &&
14591459
(rt->fl.oif == 0) &&
14601460
#ifdef CONFIG_DECNET_ROUTE_FWMARK
1461-
(rt->fl.fld_fwmark == skb->nfmark) &&
1461+
(rt->fl.fld_fwmark == skb->mark) &&
14621462
#endif
14631463
(rt->fl.iif == cb->iif)) {
14641464
rt->u.dst.lastuse = jiffies;

net/ipv4/ip_output.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,7 @@ static void ip_copy_metadata(struct sk_buff *to, struct sk_buff *from)
386386
dst_release(to->dst);
387387
to->dst = dst_clone(from->dst);
388388
to->dev = from->dev;
389+
to->mark = from->mark;
389390

390391
/* Copy the flags to each fragment. */
391392
IPCB(to)->flags = IPCB(from)->flags;
@@ -394,7 +395,6 @@ static void ip_copy_metadata(struct sk_buff *to, struct sk_buff *from)
394395
to->tc_index = from->tc_index;
395396
#endif
396397
#ifdef CONFIG_NETFILTER
397-
to->nfmark = from->nfmark;
398398
/* Connection association is same as pre-frag packet */
399399
nf_conntrack_put(to->nfct);
400400
to->nfct = from->nfct;

net/ipv4/ipvs/ip_vs_proto_tcp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ tcp_conn_schedule(struct sk_buff *skb,
8484
}
8585

8686
if (th->syn &&
87-
(svc = ip_vs_service_get(skb->nfmark, skb->nh.iph->protocol,
87+
(svc = ip_vs_service_get(skb->mark, skb->nh.iph->protocol,
8888
skb->nh.iph->daddr, th->dest))) {
8989
if (ip_vs_todrop()) {
9090
/*

net/ipv4/ipvs/ip_vs_proto_udp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ udp_conn_schedule(struct sk_buff *skb, struct ip_vs_protocol *pp,
8989
return 0;
9090
}
9191

92-
if ((svc = ip_vs_service_get(skb->nfmark, skb->nh.iph->protocol,
92+
if ((svc = ip_vs_service_get(skb->mark, skb->nh.iph->protocol,
9393
skb->nh.iph->daddr, uh->dest))) {
9494
if (ip_vs_todrop()) {
9595
/*

net/ipv4/netfilter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ int ip_route_me_harder(struct sk_buff **pskb, unsigned addr_type)
2828
fl.nl_u.ip4_u.tos = RT_TOS(iph->tos);
2929
fl.oif = (*pskb)->sk ? (*pskb)->sk->sk_bound_dev_if : 0;
3030
#ifdef CONFIG_IP_ROUTE_FWMARK
31-
fl.nl_u.ip4_u.fwmark = (*pskb)->nfmark;
31+
fl.nl_u.ip4_u.fwmark = (*pskb)->mark;
3232
#endif
3333
if (ip_route_output_key(&rt, &fl) != 0)
3434
return -1;

net/ipv4/netfilter/ip_queue.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ ipq_build_packet_message(struct ipq_queue_entry *entry, int *errp)
243243
pmsg->data_len = data_len;
244244
pmsg->timestamp_sec = entry->skb->tstamp.off_sec;
245245
pmsg->timestamp_usec = entry->skb->tstamp.off_usec;
246-
pmsg->mark = entry->skb->nfmark;
246+
pmsg->mark = entry->skb->mark;
247247
pmsg->hook = entry->info->hook;
248248
pmsg->hw_protocol = entry->skb->protocol;
249249

net/ipv4/netfilter/ipt_REJECT.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ static void send_reset(struct sk_buff *oldskb, int hook)
7676

7777
/* This packet will not be the same as the other: clear nf fields */
7878
nf_reset(nskb);
79-
nskb->nfmark = 0;
79+
nskb->mark = 0;
8080
skb_init_secmark(nskb);
8181

8282
tcph = (struct tcphdr *)((u_int32_t*)nskb->nh.iph + nskb->nh.iph->ihl);

net/ipv4/netfilter/ipt_ULOG.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ static void ipt_ulog_packet(unsigned int hooknum,
239239
pm->data_len = copy_len;
240240
pm->timestamp_sec = skb->tstamp.off_sec;
241241
pm->timestamp_usec = skb->tstamp.off_usec;
242-
pm->mark = skb->nfmark;
242+
pm->mark = skb->mark;
243243
pm->hook = hooknum;
244244
if (prefix != NULL)
245245
strncpy(pm->prefix, prefix, sizeof(pm->prefix));

net/ipv4/netfilter/iptable_mangle.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ ipt_local_hook(unsigned int hook,
132132
unsigned int ret;
133133
u_int8_t tos;
134134
__be32 saddr, daddr;
135-
unsigned long nfmark;
135+
u_int32_t mark;
136136

137137
/* root is playing with raw sockets. */
138138
if ((*pskb)->len < sizeof(struct iphdr)
@@ -143,7 +143,7 @@ ipt_local_hook(unsigned int hook,
143143
}
144144

145145
/* Save things which could affect route */
146-
nfmark = (*pskb)->nfmark;
146+
mark = (*pskb)->mark;
147147
saddr = (*pskb)->nh.iph->saddr;
148148
daddr = (*pskb)->nh.iph->daddr;
149149
tos = (*pskb)->nh.iph->tos;
@@ -154,7 +154,7 @@ ipt_local_hook(unsigned int hook,
154154
&& ((*pskb)->nh.iph->saddr != saddr
155155
|| (*pskb)->nh.iph->daddr != daddr
156156
#ifdef CONFIG_IP_ROUTE_FWMARK
157-
|| (*pskb)->nfmark != nfmark
157+
|| (*pskb)->mark != mark
158158
#endif
159159
|| (*pskb)->nh.iph->tos != tos))
160160
if (ip_route_me_harder(pskb, RTN_UNSPEC))

net/ipv4/route.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1644,7 +1644,7 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
16441644
rth->rt_dst = daddr;
16451645
rth->fl.fl4_tos = tos;
16461646
#ifdef CONFIG_IP_ROUTE_FWMARK
1647-
rth->fl.fl4_fwmark= skb->nfmark;
1647+
rth->fl.fl4_fwmark= skb->mark;
16481648
#endif
16491649
rth->fl.fl4_src = saddr;
16501650
rth->rt_src = saddr;
@@ -1790,7 +1790,7 @@ static inline int __mkroute_input(struct sk_buff *skb,
17901790
rth->rt_dst = daddr;
17911791
rth->fl.fl4_tos = tos;
17921792
#ifdef CONFIG_IP_ROUTE_FWMARK
1793-
rth->fl.fl4_fwmark= skb->nfmark;
1793+
rth->fl.fl4_fwmark= skb->mark;
17941794
#endif
17951795
rth->fl.fl4_src = saddr;
17961796
rth->rt_src = saddr;
@@ -1921,7 +1921,7 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
19211921
.tos = tos,
19221922
.scope = RT_SCOPE_UNIVERSE,
19231923
#ifdef CONFIG_IP_ROUTE_FWMARK
1924-
.fwmark = skb->nfmark
1924+
.fwmark = skb->mark
19251925
#endif
19261926
} },
19271927
.iif = dev->ifindex };
@@ -2035,7 +2035,7 @@ out: return err;
20352035
rth->rt_dst = daddr;
20362036
rth->fl.fl4_tos = tos;
20372037
#ifdef CONFIG_IP_ROUTE_FWMARK
2038-
rth->fl.fl4_fwmark= skb->nfmark;
2038+
rth->fl.fl4_fwmark= skb->mark;
20392039
#endif
20402040
rth->fl.fl4_src = saddr;
20412041
rth->rt_src = saddr;
@@ -2114,7 +2114,7 @@ int ip_route_input(struct sk_buff *skb, __be32 daddr, __be32 saddr,
21142114
rth->fl.iif == iif &&
21152115
rth->fl.oif == 0 &&
21162116
#ifdef CONFIG_IP_ROUTE_FWMARK
2117-
rth->fl.fl4_fwmark == skb->nfmark &&
2117+
rth->fl.fl4_fwmark == skb->mark &&
21182118
#endif
21192119
rth->fl.fl4_tos == tos) {
21202120
rth->u.dst.lastuse = jiffies;

net/ipv6/ip6_output.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,12 +499,12 @@ static void ip6_copy_metadata(struct sk_buff *to, struct sk_buff *from)
499499
dst_release(to->dst);
500500
to->dst = dst_clone(from->dst);
501501
to->dev = from->dev;
502+
to->mark = from->mark;
502503

503504
#ifdef CONFIG_NET_SCHED
504505
to->tc_index = from->tc_index;
505506
#endif
506507
#ifdef CONFIG_NETFILTER
507-
to->nfmark = from->nfmark;
508508
/* Connection association is same as pre-frag packet */
509509
nf_conntrack_put(to->nfct);
510510
to->nfct = from->nfct;

net/ipv6/netfilter/ip6_queue.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ ipq_build_packet_message(struct ipq_queue_entry *entry, int *errp)
241241
pmsg->data_len = data_len;
242242
pmsg->timestamp_sec = entry->skb->tstamp.off_sec;
243243
pmsg->timestamp_usec = entry->skb->tstamp.off_usec;
244-
pmsg->mark = entry->skb->nfmark;
244+
pmsg->mark = entry->skb->mark;
245245
pmsg->hook = entry->info->hook;
246246
pmsg->hw_protocol = entry->skb->protocol;
247247

net/ipv6/netfilter/ip6table_mangle.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,11 +149,10 @@ ip6t_local_hook(unsigned int hook,
149149
int (*okfn)(struct sk_buff *))
150150
{
151151

152-
unsigned long nfmark;
153152
unsigned int ret;
154153
struct in6_addr saddr, daddr;
155154
u_int8_t hop_limit;
156-
u_int32_t flowlabel;
155+
u_int32_t flowlabel, mark;
157156

158157
#if 0
159158
/* root is playing with raw sockets. */
@@ -165,10 +164,10 @@ ip6t_local_hook(unsigned int hook,
165164
}
166165
#endif
167166

168-
/* save source/dest address, nfmark, hoplimit, flowlabel, priority, */
167+
/* save source/dest address, mark, hoplimit, flowlabel, priority, */
169168
memcpy(&saddr, &(*pskb)->nh.ipv6h->saddr, sizeof(saddr));
170169
memcpy(&daddr, &(*pskb)->nh.ipv6h->daddr, sizeof(daddr));
171-
nfmark = (*pskb)->nfmark;
170+
mark = (*pskb)->mark;
172171
hop_limit = (*pskb)->nh.ipv6h->hop_limit;
173172

174173
/* flowlabel and prio (includes version, which shouldn't change either */
@@ -179,7 +178,7 @@ ip6t_local_hook(unsigned int hook,
179178
if (ret != NF_DROP && ret != NF_STOLEN
180179
&& (memcmp(&(*pskb)->nh.ipv6h->saddr, &saddr, sizeof(saddr))
181180
|| memcmp(&(*pskb)->nh.ipv6h->daddr, &daddr, sizeof(daddr))
182-
|| (*pskb)->nfmark != nfmark
181+
|| (*pskb)->mark != mark
183182
|| (*pskb)->nh.ipv6h->hop_limit != hop_limit))
184183
return ip6_route_me_harder(*pskb) == 0 ? ret : NF_DROP;
185184

net/ipv6/route.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ void ip6_route_input(struct sk_buff *skb)
712712
.daddr = iph->daddr,
713713
.saddr = iph->saddr,
714714
#ifdef CONFIG_IPV6_ROUTE_FWMARK
715-
.fwmark = skb->nfmark,
715+
.fwmark = skb->mark,
716716
#endif
717717
.flowlabel = (* (__be32 *) iph)&IPV6_FLOWINFO_MASK,
718718
},

net/netfilter/nfnetlink_log.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -501,8 +501,8 @@ __build_packet_message(struct nfulnl_instance *inst,
501501
#endif
502502
}
503503

504-
if (skb->nfmark) {
505-
tmp_uint = htonl(skb->nfmark);
504+
if (skb->mark) {
505+
tmp_uint = htonl(skb->mark);
506506
NFA_PUT(inst->skb, NFULA_MARK, sizeof(tmp_uint), &tmp_uint);
507507
}
508508

net/netfilter/nfnetlink_queue.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,8 +480,8 @@ nfqnl_build_packet_message(struct nfqnl_instance *queue,
480480
#endif
481481
}
482482

483-
if (entskb->nfmark) {
484-
tmp_uint = htonl(entskb->nfmark);
483+
if (entskb->mark) {
484+
tmp_uint = htonl(entskb->mark);
485485
NFA_PUT(skb, NFQA_MARK, sizeof(u_int32_t), &tmp_uint);
486486
}
487487

@@ -834,8 +834,8 @@ nfqnl_recv_verdict(struct sock *ctnl, struct sk_buff *skb,
834834
}
835835

836836
if (nfqa[NFQA_MARK-1])
837-
entry->skb->nfmark = ntohl(*(__be32 *)
838-
NFA_DATA(nfqa[NFQA_MARK-1]));
837+
entry->skb->mark = ntohl(*(__be32 *)
838+
NFA_DATA(nfqa[NFQA_MARK-1]));
839839

840840
issue_verdict(entry, verdict);
841841
instance_put(queue);

net/netfilter/xt_CONNMARK.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ target(struct sk_buff **pskb,
4242
{
4343
const struct xt_connmark_target_info *markinfo = targinfo;
4444
u_int32_t diff;
45-
u_int32_t nfmark;
45+
u_int32_t mark;
4646
u_int32_t newmark;
4747
u_int32_t ctinfo;
4848
u_int32_t *ctmark = nf_ct_get_mark(*pskb, &ctinfo);
@@ -62,7 +62,7 @@ target(struct sk_buff **pskb,
6262
break;
6363
case XT_CONNMARK_SAVE:
6464
newmark = (*ctmark & ~markinfo->mask) |
65-
((*pskb)->nfmark & markinfo->mask);
65+
((*pskb)->mark & markinfo->mask);
6666
if (*ctmark != newmark) {
6767
*ctmark = newmark;
6868
#if defined(CONFIG_IP_NF_CONNTRACK) || defined(CONFIG_IP_NF_CONNTRACK_MODULE)
@@ -73,10 +73,10 @@ target(struct sk_buff **pskb,
7373
}
7474
break;
7575
case XT_CONNMARK_RESTORE:
76-
nfmark = (*pskb)->nfmark;
77-
diff = (*ctmark ^ nfmark) & markinfo->mask;
76+
mark = (*pskb)->mark;
77+
diff = (*ctmark ^ mark) & markinfo->mask;
7878
if (diff != 0)
79-
(*pskb)->nfmark = nfmark ^ diff;
79+
(*pskb)->mark = mark ^ diff;
8080
break;
8181
}
8282
}

0 commit comments

Comments
 (0)