ip: pass tos into ip_build_and_send_pkt()
This commit adds tos as a new passed in parameter to ip_build_and_send_pkt() which will be used in the later commit. This is a pure restructure and does not have any functional change. Signed-off-by: Wei Wang <weiwan@google.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e9b12edc13
commit
de033b7d15
|
@ -151,7 +151,7 @@ int igmp_mc_init(void);
|
||||||
|
|
||||||
int ip_build_and_send_pkt(struct sk_buff *skb, const struct sock *sk,
|
int ip_build_and_send_pkt(struct sk_buff *skb, const struct sock *sk,
|
||||||
__be32 saddr, __be32 daddr,
|
__be32 saddr, __be32 daddr,
|
||||||
struct ip_options_rcu *opt);
|
struct ip_options_rcu *opt, u8 tos);
|
||||||
int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt,
|
int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt,
|
||||||
struct net_device *orig_dev);
|
struct net_device *orig_dev);
|
||||||
void ip_list_rcv(struct list_head *head, struct packet_type *pt,
|
void ip_list_rcv(struct list_head *head, struct packet_type *pt,
|
||||||
|
|
|
@ -495,7 +495,8 @@ static int dccp_v4_send_response(const struct sock *sk, struct request_sock *req
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
err = ip_build_and_send_pkt(skb, sk, ireq->ir_loc_addr,
|
err = ip_build_and_send_pkt(skb, sk, ireq->ir_loc_addr,
|
||||||
ireq->ir_rmt_addr,
|
ireq->ir_rmt_addr,
|
||||||
rcu_dereference(ireq->ireq_opt));
|
rcu_dereference(ireq->ireq_opt),
|
||||||
|
inet_sk(sk)->tos);
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
err = net_xmit_eval(err);
|
err = net_xmit_eval(err);
|
||||||
}
|
}
|
||||||
|
@ -537,7 +538,8 @@ static void dccp_v4_ctl_send_reset(const struct sock *sk, struct sk_buff *rxskb)
|
||||||
local_bh_disable();
|
local_bh_disable();
|
||||||
bh_lock_sock(ctl_sk);
|
bh_lock_sock(ctl_sk);
|
||||||
err = ip_build_and_send_pkt(skb, ctl_sk,
|
err = ip_build_and_send_pkt(skb, ctl_sk,
|
||||||
rxiph->daddr, rxiph->saddr, NULL);
|
rxiph->daddr, rxiph->saddr, NULL,
|
||||||
|
inet_sk(ctl_sk)->tos);
|
||||||
bh_unlock_sock(ctl_sk);
|
bh_unlock_sock(ctl_sk);
|
||||||
|
|
||||||
if (net_xmit_eval(err) == 0) {
|
if (net_xmit_eval(err) == 0) {
|
||||||
|
|
|
@ -142,7 +142,8 @@ static inline int ip_select_ttl(struct inet_sock *inet, struct dst_entry *dst)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
int ip_build_and_send_pkt(struct sk_buff *skb, const struct sock *sk,
|
int ip_build_and_send_pkt(struct sk_buff *skb, const struct sock *sk,
|
||||||
__be32 saddr, __be32 daddr, struct ip_options_rcu *opt)
|
__be32 saddr, __be32 daddr, struct ip_options_rcu *opt,
|
||||||
|
u8 tos)
|
||||||
{
|
{
|
||||||
struct inet_sock *inet = inet_sk(sk);
|
struct inet_sock *inet = inet_sk(sk);
|
||||||
struct rtable *rt = skb_rtable(skb);
|
struct rtable *rt = skb_rtable(skb);
|
||||||
|
@ -155,7 +156,7 @@ int ip_build_and_send_pkt(struct sk_buff *skb, const struct sock *sk,
|
||||||
iph = ip_hdr(skb);
|
iph = ip_hdr(skb);
|
||||||
iph->version = 4;
|
iph->version = 4;
|
||||||
iph->ihl = 5;
|
iph->ihl = 5;
|
||||||
iph->tos = inet->tos;
|
iph->tos = tos;
|
||||||
iph->ttl = ip_select_ttl(inet, &rt->dst);
|
iph->ttl = ip_select_ttl(inet, &rt->dst);
|
||||||
iph->daddr = (opt && opt->opt.srr ? opt->opt.faddr : daddr);
|
iph->daddr = (opt && opt->opt.srr ? opt->opt.faddr : daddr);
|
||||||
iph->saddr = saddr;
|
iph->saddr = saddr;
|
||||||
|
|
|
@ -985,7 +985,8 @@ static int tcp_v4_send_synack(const struct sock *sk, struct dst_entry *dst,
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
err = ip_build_and_send_pkt(skb, sk, ireq->ir_loc_addr,
|
err = ip_build_and_send_pkt(skb, sk, ireq->ir_loc_addr,
|
||||||
ireq->ir_rmt_addr,
|
ireq->ir_rmt_addr,
|
||||||
rcu_dereference(ireq->ireq_opt));
|
rcu_dereference(ireq->ireq_opt),
|
||||||
|
inet_sk(sk)->tos);
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
err = net_xmit_eval(err);
|
err = net_xmit_eval(err);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue