inet: Pass flowi to ->queue_xmit().
This allows us to acquire the exact route keying information from the protocol, however that might be managed. It handles all of the possibilities, from the simplest case of storing the key in inet->cork.fl to the more complex setup SCTP has where individual transports determine the flow. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0e73441992
commit
d9d8da805d
10 changed files with 17 additions and 15 deletions
|
@ -312,7 +312,7 @@ int ip_output(struct sk_buff *skb)
|
|||
!(IPCB(skb)->flags & IPSKB_REROUTED));
|
||||
}
|
||||
|
||||
int ip_queue_xmit(struct sk_buff *skb)
|
||||
int ip_queue_xmit(struct sk_buff *skb, struct flowi *fl)
|
||||
{
|
||||
struct sock *sk = skb->sk;
|
||||
struct inet_sock *inet = inet_sk(sk);
|
||||
|
@ -332,7 +332,7 @@ int ip_queue_xmit(struct sk_buff *skb)
|
|||
goto packet_routed;
|
||||
|
||||
/* Make sure we can route this packet. */
|
||||
fl4 = &inet->cork.fl.u.ip4;
|
||||
fl4 = &fl->u.ip4;
|
||||
rt = (struct rtable *)__sk_dst_check(sk, 0);
|
||||
if (rt == NULL) {
|
||||
__be32 daddr;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue