Skip to content

Commit

Permalink
[NETFILTER]: Convert old checksum helper names
Browse files Browse the repository at this point in the history
Kill the defines again, convert to the new checksum helper names and
remove the dependency of NET_ACT_NAT on NETFILTER.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Patrick McHardy authored and David S. Miller committed Jan 28, 2008
1 parent a99a00c commit be0ea7d
Show file tree
Hide file tree
Showing 12 changed files with 40 additions and 45 deletions.
5 changes: 0 additions & 5 deletions include/linux/netfilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -298,11 +298,6 @@ extern void nf_invalidate_cache(int pf);
Returns true or false. */
extern int skb_make_writable(struct sk_buff *skb, unsigned int writable_len);

#define nf_csum_replace4 csum_replace4
#define nf_csum_replace2 csum_replace2
#define nf_proto_csum_replace4 inet_proto_csum_replace4
#define nf_proto_csum_replace2 inet_proto_csum_replace2

struct nf_afinfo {
unsigned short family;
__sum16 (*checksum)(struct sk_buff *skb, unsigned int hook,
Expand Down
6 changes: 3 additions & 3 deletions net/ipv4/netfilter/ipt_ECN.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ set_ect_ip(struct sk_buff *skb, const struct ipt_ECN_info *einfo)
oldtos = iph->tos;
iph->tos &= ~IPT_ECN_IP_MASK;
iph->tos |= (einfo->ip_ect & IPT_ECN_IP_MASK);
nf_csum_replace2(&iph->check, htons(oldtos), htons(iph->tos));
csum_replace2(&iph->check, htons(oldtos), htons(iph->tos));
}
return true;
}
Expand Down Expand Up @@ -71,8 +71,8 @@ set_ect_tcp(struct sk_buff *skb, const struct ipt_ECN_info *einfo)
if (einfo->operation & IPT_ECN_OP_SET_CWR)
tcph->cwr = einfo->proto.tcp.cwr;

nf_proto_csum_replace2(&tcph->check, skb,
oldval, ((__be16 *)tcph)[6], 0);
inet_proto_csum_replace2(&tcph->check, skb,
oldval, ((__be16 *)tcph)[6], 0);
return true;
}

Expand Down
2 changes: 1 addition & 1 deletion net/ipv4/netfilter/ipt_TOS.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ target(struct sk_buff *skb,
iph = ip_hdr(skb);
oldtos = iph->tos;
iph->tos = (iph->tos & IPTOS_PREC_MASK) | tosinfo->tos;
nf_csum_replace2(&iph->check, htons(oldtos), htons(iph->tos));
csum_replace2(&iph->check, htons(oldtos), htons(iph->tos));
}
return XT_CONTINUE;
}
Expand Down
4 changes: 2 additions & 2 deletions net/ipv4/netfilter/ipt_TTL.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ ipt_ttl_target(struct sk_buff *skb,
}

if (new_ttl != iph->ttl) {
nf_csum_replace2(&iph->check, htons(iph->ttl << 8),
htons(new_ttl << 8));
csum_replace2(&iph->check, htons(iph->ttl << 8),
htons(new_ttl << 8));
iph->ttl = new_ttl;
}

Expand Down
4 changes: 2 additions & 2 deletions net/ipv4/netfilter/nf_nat_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -372,10 +372,10 @@ manip_pkt(u_int16_t proto,
iph = (void *)skb->data + iphdroff;

if (maniptype == IP_NAT_MANIP_SRC) {
nf_csum_replace4(&iph->check, iph->saddr, target->src.u3.ip);
csum_replace4(&iph->check, iph->saddr, target->src.u3.ip);
iph->saddr = target->src.u3.ip;
} else {
nf_csum_replace4(&iph->check, iph->daddr, target->dst.u3.ip);
csum_replace4(&iph->check, iph->daddr, target->dst.u3.ip);
iph->daddr = target->dst.u3.ip;
}
return 1;
Expand Down
20 changes: 10 additions & 10 deletions net/ipv4/netfilter/nf_nat_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,8 +180,8 @@ nf_nat_mangle_tcp_packet(struct sk_buff *skb,
datalen, 0));
}
} else
nf_proto_csum_replace2(&tcph->check, skb,
htons(oldlen), htons(datalen), 1);
inet_proto_csum_replace2(&tcph->check, skb,
htons(oldlen), htons(datalen), 1);

if (rep_len != match_len) {
set_bit(IPS_SEQ_ADJUST_BIT, &ct->status);
Expand Down Expand Up @@ -270,8 +270,8 @@ nf_nat_mangle_udp_packet(struct sk_buff *skb,
udph->check = CSUM_MANGLED_0;
}
} else
nf_proto_csum_replace2(&udph->check, skb,
htons(oldlen), htons(datalen), 1);
inet_proto_csum_replace2(&udph->check, skb,
htons(oldlen), htons(datalen), 1);

return 1;
}
Expand Down Expand Up @@ -310,10 +310,10 @@ sack_adjust(struct sk_buff *skb,
ntohl(sack->start_seq), new_start_seq,
ntohl(sack->end_seq), new_end_seq);

nf_proto_csum_replace4(&tcph->check, skb,
sack->start_seq, new_start_seq, 0);
nf_proto_csum_replace4(&tcph->check, skb,
sack->end_seq, new_end_seq, 0);
inet_proto_csum_replace4(&tcph->check, skb,
sack->start_seq, new_start_seq, 0);
inet_proto_csum_replace4(&tcph->check, skb,
sack->end_seq, new_end_seq, 0);
sack->start_seq = new_start_seq;
sack->end_seq = new_end_seq;
sackoff += sizeof(*sack);
Expand Down Expand Up @@ -397,8 +397,8 @@ nf_nat_seq_adjust(struct sk_buff *skb,
else
newack = htonl(ntohl(tcph->ack_seq) - other_way->offset_before);

nf_proto_csum_replace4(&tcph->check, skb, tcph->seq, newseq, 0);
nf_proto_csum_replace4(&tcph->check, skb, tcph->ack_seq, newack, 0);
inet_proto_csum_replace4(&tcph->check, skb, tcph->seq, newseq, 0);
inet_proto_csum_replace4(&tcph->check, skb, tcph->ack_seq, newack, 0);

pr_debug("Adjusting sequence number from %u->%u, ack from %u->%u\n",
ntohl(tcph->seq), ntohl(newseq), ntohl(tcph->ack_seq),
Expand Down
4 changes: 2 additions & 2 deletions net/ipv4/netfilter/nf_nat_proto_icmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ icmp_manip_pkt(struct sk_buff *skb,
return 0;

hdr = (struct icmphdr *)(skb->data + hdroff);
nf_proto_csum_replace2(&hdr->checksum, skb,
hdr->un.echo.id, tuple->src.u.icmp.id, 0);
inet_proto_csum_replace2(&hdr->checksum, skb,
hdr->un.echo.id, tuple->src.u.icmp.id, 0);
hdr->un.echo.id = tuple->src.u.icmp.id;
return 1;
}
Expand Down
4 changes: 2 additions & 2 deletions net/ipv4/netfilter/nf_nat_proto_tcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ tcp_manip_pkt(struct sk_buff *skb,
if (hdrsize < sizeof(*hdr))
return 1;

nf_proto_csum_replace4(&hdr->check, skb, oldip, newip, 1);
nf_proto_csum_replace2(&hdr->check, skb, oldport, newport, 0);
inet_proto_csum_replace4(&hdr->check, skb, oldip, newip, 1);
inet_proto_csum_replace2(&hdr->check, skb, oldport, newport, 0);
return 1;
}

Expand Down
6 changes: 3 additions & 3 deletions net/ipv4/netfilter/nf_nat_proto_udp.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,9 @@ udp_manip_pkt(struct sk_buff *skb,
portptr = &hdr->dest;
}
if (hdr->check || skb->ip_summed == CHECKSUM_PARTIAL) {
nf_proto_csum_replace4(&hdr->check, skb, oldip, newip, 1);
nf_proto_csum_replace2(&hdr->check, skb, *portptr, newport,
0);
inet_proto_csum_replace4(&hdr->check, skb, oldip, newip, 1);
inet_proto_csum_replace2(&hdr->check, skb, *portptr, newport,
0);
if (!hdr->check)
hdr->check = CSUM_MANGLED_0;
}
Expand Down
17 changes: 9 additions & 8 deletions net/netfilter/xt_TCPMSS.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,9 @@ tcpmss_mangle_packet(struct sk_buff *skb,
opt[i+2] = (newmss & 0xff00) >> 8;
opt[i+3] = newmss & 0x00ff;

nf_proto_csum_replace2(&tcph->check, skb,
htons(oldmss), htons(newmss), 0);
inet_proto_csum_replace2(&tcph->check, skb,
htons(oldmss), htons(newmss),
0);
return 0;
}
}
Expand All @@ -117,19 +118,19 @@ tcpmss_mangle_packet(struct sk_buff *skb,
opt = (u_int8_t *)tcph + sizeof(struct tcphdr);
memmove(opt + TCPOLEN_MSS, opt, tcplen - sizeof(struct tcphdr));

nf_proto_csum_replace2(&tcph->check, skb,
htons(tcplen), htons(tcplen + TCPOLEN_MSS), 1);
inet_proto_csum_replace2(&tcph->check, skb,
htons(tcplen), htons(tcplen + TCPOLEN_MSS), 1);
opt[0] = TCPOPT_MSS;
opt[1] = TCPOLEN_MSS;
opt[2] = (newmss & 0xff00) >> 8;
opt[3] = newmss & 0x00ff;

nf_proto_csum_replace4(&tcph->check, skb, 0, *((__be32 *)opt), 0);
inet_proto_csum_replace4(&tcph->check, skb, 0, *((__be32 *)opt), 0);

oldval = ((__be16 *)tcph)[6];
tcph->doff += TCPOLEN_MSS/4;
nf_proto_csum_replace2(&tcph->check, skb,
oldval, ((__be16 *)tcph)[6], 0);
inet_proto_csum_replace2(&tcph->check, skb,
oldval, ((__be16 *)tcph)[6], 0);
return TCPOLEN_MSS;
}

Expand All @@ -152,7 +153,7 @@ xt_tcpmss_target4(struct sk_buff *skb,
if (ret > 0) {
iph = ip_hdr(skb);
newlen = htons(ntohs(iph->tot_len) + ret);
nf_csum_replace2(&iph->check, iph->tot_len, newlen);
csum_replace2(&iph->check, iph->tot_len, newlen);
iph->tot_len = newlen;
}
return XT_CONTINUE;
Expand Down
1 change: 0 additions & 1 deletion net/sched/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,6 @@ config NET_ACT_IPT
config NET_ACT_NAT
tristate "Stateless NAT"
depends on NET_CLS_ACT
select NETFILTER
---help---
Say Y here to do stateless NAT on IPv4 packets. You should use
netfilter for NAT unless you know what you are doing.
Expand Down
12 changes: 6 additions & 6 deletions net/sched/act_nat.c
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ static int tcf_nat(struct sk_buff *skb, struct tc_action *a,
else
iph->daddr = new_addr;

nf_csum_replace4(&iph->check, addr, new_addr);
csum_replace4(&iph->check, addr, new_addr);
}

ihl = iph->ihl * 4;
Expand All @@ -169,7 +169,7 @@ static int tcf_nat(struct sk_buff *skb, struct tc_action *a,
goto drop;

tcph = (void *)(skb_network_header(skb) + ihl);
nf_proto_csum_replace4(&tcph->check, skb, addr, new_addr, 1);
inet_proto_csum_replace4(&tcph->check, skb, addr, new_addr, 1);
break;
}
case IPPROTO_UDP:
Expand All @@ -184,8 +184,8 @@ static int tcf_nat(struct sk_buff *skb, struct tc_action *a,

udph = (void *)(skb_network_header(skb) + ihl);
if (udph->check || skb->ip_summed == CHECKSUM_PARTIAL) {
nf_proto_csum_replace4(&udph->check, skb, addr,
new_addr, 1);
inet_proto_csum_replace4(&udph->check, skb, addr,
new_addr, 1);
if (!udph->check)
udph->check = CSUM_MANGLED_0;
}
Expand Down Expand Up @@ -232,8 +232,8 @@ static int tcf_nat(struct sk_buff *skb, struct tc_action *a,
else
iph->saddr = new_addr;

nf_proto_csum_replace4(&icmph->checksum, skb, addr, new_addr,
1);
inet_proto_csum_replace4(&icmph->checksum, skb, addr, new_addr,
1);
break;
}
default:
Expand Down

0 comments on commit be0ea7d

Please sign in to comment.