git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ipv6: Convert to use flowi6 where applicable.
[pandora-kernel.git]
/
net
/
ipv6
/
ip6mr.c
diff --git
a/net/ipv6/ip6mr.c
b/net/ipv6/ip6mr.c
index
0e1d53b
..
7ff0343
100644
(file)
--- a/
net/ipv6/ip6mr.c
+++ b/
net/ipv6/ip6mr.c
@@
-135,14
+135,15
@@
static struct mr6_table *ip6mr_get_table(struct net *net, u32 id)
return NULL;
}
return NULL;
}
-static int ip6mr_fib_lookup(struct net *net, struct flowi
*flp
,
+static int ip6mr_fib_lookup(struct net *net, struct flowi
6 *flp6
,
struct mr6_table **mrt)
{
struct ip6mr_result res;
struct fib_lookup_arg arg = { .result = &res, };
int err;
struct mr6_table **mrt)
{
struct ip6mr_result res;
struct fib_lookup_arg arg = { .result = &res, };
int err;
- err = fib_rules_lookup(net->ipv6.mr6_rules_ops, flp, 0, &arg);
+ err = fib_rules_lookup(net->ipv6.mr6_rules_ops,
+ flowi6_to_flowi(flp6), 0, &arg);
if (err < 0)
return err;
*mrt = res.mrt;
if (err < 0)
return err;
*mrt = res.mrt;
@@
-270,7
+271,7
@@
static struct mr6_table *ip6mr_get_table(struct net *net, u32 id)
return net->ipv6.mrt6;
}
return net->ipv6.mrt6;
}
-static int ip6mr_fib_lookup(struct net *net, struct flowi
*flp
,
+static int ip6mr_fib_lookup(struct net *net, struct flowi
6 *flp6
,
struct mr6_table **mrt)
{
*mrt = net->ipv6.mrt6;
struct mr6_table **mrt)
{
*mrt = net->ipv6.mrt6;
@@
-617,9
+618,9
@@
static int pim6_rcv(struct sk_buff *skb)
struct net_device *reg_dev = NULL;
struct net *net = dev_net(skb->dev);
struct mr6_table *mrt;
struct net_device *reg_dev = NULL;
struct net *net = dev_net(skb->dev);
struct mr6_table *mrt;
- struct flowi
fl
= {
- .
iif
= skb->dev->ifindex,
- .
mark
= skb->mark,
+ struct flowi
6 fl6
= {
+ .
flowi6_iif
= skb->dev->ifindex,
+ .
flowi6_mark
= skb->mark,
};
int reg_vif_num;
};
int reg_vif_num;
@@
-644,7
+645,7
@@
static int pim6_rcv(struct sk_buff *skb)
ntohs(encap->payload_len) + sizeof(*pim) > skb->len)
goto drop;
ntohs(encap->payload_len) + sizeof(*pim) > skb->len)
goto drop;
- if (ip6mr_fib_lookup(net, &fl, &mrt) < 0)
+ if (ip6mr_fib_lookup(net, &fl
6
, &mrt) < 0)
goto drop;
reg_vif_num = mrt->mroute_reg_vif_num;
goto drop;
reg_vif_num = mrt->mroute_reg_vif_num;
@@
-687,14
+688,14
@@
static netdev_tx_t reg_vif_xmit(struct sk_buff *skb,
{
struct net *net = dev_net(dev);
struct mr6_table *mrt;
{
struct net *net = dev_net(dev);
struct mr6_table *mrt;
- struct flowi
fl
= {
- .
oif
= dev->ifindex,
- .
iif
= skb->skb_iif,
- .
mark
= skb->mark,
+ struct flowi
6 fl6
= {
+ .
flowi6_oif
= dev->ifindex,
+ .
flowi6_iif
= skb->skb_iif,
+ .
flowi6_mark
= skb->mark,
};
int err;
};
int err;
- err = ip6mr_fib_lookup(net, &fl, &mrt);
+ err = ip6mr_fib_lookup(net, &fl
6
, &mrt);
if (err < 0)
return err;
if (err < 0)
return err;
@@
-1039,7
+1040,6
@@
static void ip6mr_cache_resolve(struct net *net, struct mr6_table *mrt,
while((skb = __skb_dequeue(&uc->mfc_un.unres.unresolved))) {
if (ipv6_hdr(skb)->version == 0) {
while((skb = __skb_dequeue(&uc->mfc_un.unres.unresolved))) {
if (ipv6_hdr(skb)->version == 0) {
- int err;
struct nlmsghdr *nlh = (struct nlmsghdr *)skb_pull(skb, sizeof(struct ipv6hdr));
if (__ip6mr_fill_mroute(mrt, skb, c, NLMSG_DATA(nlh)) > 0) {
struct nlmsghdr *nlh = (struct nlmsghdr *)skb_pull(skb, sizeof(struct ipv6hdr));
if (__ip6mr_fill_mroute(mrt, skb, c, NLMSG_DATA(nlh)) > 0) {
@@
-1050,7
+1050,7
@@
static void ip6mr_cache_resolve(struct net *net, struct mr6_table *mrt,
skb_trim(skb, nlh->nlmsg_len);
((struct nlmsgerr *)NLMSG_DATA(nlh))->error = -EMSGSIZE;
}
skb_trim(skb, nlh->nlmsg_len);
((struct nlmsgerr *)NLMSG_DATA(nlh))->error = -EMSGSIZE;
}
-
err =
rtnl_unicast(skb, net, NETLINK_CB(skb).pid);
+ rtnl_unicast(skb, net, NETLINK_CB(skb).pid);
} else
ip6_mr_forward(net, mrt, skb, c);
}
} else
ip6_mr_forward(net, mrt, skb, c);
}
@@
-1548,13
+1548,13
@@
int ip6mr_sk_done(struct sock *sk)
struct sock *mroute6_socket(struct net *net, struct sk_buff *skb)
{
struct mr6_table *mrt;
struct sock *mroute6_socket(struct net *net, struct sk_buff *skb)
{
struct mr6_table *mrt;
- struct flowi
fl
= {
- .
iif
= skb->skb_iif,
- .
oif
= skb->dev->ifindex,
- .
mark
= skb->mark,
+ struct flowi
6 fl6
= {
+ .
flowi6_iif
= skb->skb_iif,
+ .
flowi6_oif
= skb->dev->ifindex,
+ .
flowi6_mark
= skb->mark,
};
};
- if (ip6mr_fib_lookup(net, &fl, &mrt) < 0)
+ if (ip6mr_fib_lookup(net, &fl
6
, &mrt) < 0)
return NULL;
return mrt->mroute6_sk;
return NULL;
return mrt->mroute6_sk;
@@
-1898,7
+1898,7
@@
static int ip6mr_forward2(struct net *net, struct mr6_table *mrt,
struct mif_device *vif = &mrt->vif6_table[vifi];
struct net_device *dev;
struct dst_entry *dst;
struct mif_device *vif = &mrt->vif6_table[vifi];
struct net_device *dev;
struct dst_entry *dst;
- struct flowi
fl
;
+ struct flowi
6 fl6
;
if (vif->dev == NULL)
goto out_free;
if (vif->dev == NULL)
goto out_free;
@@
-1916,12
+1916,12
@@
static int ip6mr_forward2(struct net *net, struct mr6_table *mrt,
ipv6h = ipv6_hdr(skb);
ipv6h = ipv6_hdr(skb);
- fl
= (struct flowi
) {
- .oif = vif->link,
- .
fl6_dst
= ipv6h->daddr,
+ fl
6 = (struct flowi6
) {
+ .
flowi6_
oif = vif->link,
+ .
daddr
= ipv6h->daddr,
};
};
- dst = ip6_route_output(net, NULL, &fl);
+ dst = ip6_route_output(net, NULL, &fl
6
);
if (!dst)
goto out_free;
if (!dst)
goto out_free;
@@
-2044,13
+2044,13
@@
int ip6_mr_input(struct sk_buff *skb)
struct mfc6_cache *cache;
struct net *net = dev_net(skb->dev);
struct mr6_table *mrt;
struct mfc6_cache *cache;
struct net *net = dev_net(skb->dev);
struct mr6_table *mrt;
- struct flowi
fl
= {
- .
iif
= skb->dev->ifindex,
- .
mark
= skb->mark,
+ struct flowi
6 fl6
= {
+ .
flowi6_iif
= skb->dev->ifindex,
+ .
flowi6_mark
= skb->mark,
};
int err;
};
int err;
- err = ip6mr_fib_lookup(net, &fl, &mrt);
+ err = ip6mr_fib_lookup(net, &fl
6
, &mrt);
if (err < 0)
return err;
if (err < 0)
return err;