Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net
Two new tls tests added in parallel in both net and net-next. Used Stephen Rothwell's linux-next resolution. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -946,8 +946,6 @@ static void ip6_rt_init_dst_reject(struct rt6_info *rt, struct fib6_info *ort)
|
||||
|
||||
static void ip6_rt_init_dst(struct rt6_info *rt, struct fib6_info *ort)
|
||||
{
|
||||
rt->dst.flags |= fib6_info_dst_flags(ort);
|
||||
|
||||
if (ort->fib6_flags & RTF_REJECT) {
|
||||
ip6_rt_init_dst_reject(rt, ort);
|
||||
return;
|
||||
@@ -4641,20 +4639,31 @@ static int rt6_fill_node(struct net *net, struct sk_buff *skb,
|
||||
int iif, int type, u32 portid, u32 seq,
|
||||
unsigned int flags)
|
||||
{
|
||||
struct rtmsg *rtm;
|
||||
struct rt6_info *rt6 = (struct rt6_info *)dst;
|
||||
struct rt6key *rt6_dst, *rt6_src;
|
||||
u32 *pmetrics, table, rt6_flags;
|
||||
struct nlmsghdr *nlh;
|
||||
struct rtmsg *rtm;
|
||||
long expires = 0;
|
||||
u32 *pmetrics;
|
||||
u32 table;
|
||||
|
||||
nlh = nlmsg_put(skb, portid, seq, type, sizeof(*rtm), flags);
|
||||
if (!nlh)
|
||||
return -EMSGSIZE;
|
||||
|
||||
if (rt6) {
|
||||
rt6_dst = &rt6->rt6i_dst;
|
||||
rt6_src = &rt6->rt6i_src;
|
||||
rt6_flags = rt6->rt6i_flags;
|
||||
} else {
|
||||
rt6_dst = &rt->fib6_dst;
|
||||
rt6_src = &rt->fib6_src;
|
||||
rt6_flags = rt->fib6_flags;
|
||||
}
|
||||
|
||||
rtm = nlmsg_data(nlh);
|
||||
rtm->rtm_family = AF_INET6;
|
||||
rtm->rtm_dst_len = rt->fib6_dst.plen;
|
||||
rtm->rtm_src_len = rt->fib6_src.plen;
|
||||
rtm->rtm_dst_len = rt6_dst->plen;
|
||||
rtm->rtm_src_len = rt6_src->plen;
|
||||
rtm->rtm_tos = 0;
|
||||
if (rt->fib6_table)
|
||||
table = rt->fib6_table->tb6_id;
|
||||
@@ -4669,7 +4678,7 @@ static int rt6_fill_node(struct net *net, struct sk_buff *skb,
|
||||
rtm->rtm_scope = RT_SCOPE_UNIVERSE;
|
||||
rtm->rtm_protocol = rt->fib6_protocol;
|
||||
|
||||
if (rt->fib6_flags & RTF_CACHE)
|
||||
if (rt6_flags & RTF_CACHE)
|
||||
rtm->rtm_flags |= RTM_F_CLONED;
|
||||
|
||||
if (dest) {
|
||||
@@ -4677,7 +4686,7 @@ static int rt6_fill_node(struct net *net, struct sk_buff *skb,
|
||||
goto nla_put_failure;
|
||||
rtm->rtm_dst_len = 128;
|
||||
} else if (rtm->rtm_dst_len)
|
||||
if (nla_put_in6_addr(skb, RTA_DST, &rt->fib6_dst.addr))
|
||||
if (nla_put_in6_addr(skb, RTA_DST, &rt6_dst->addr))
|
||||
goto nla_put_failure;
|
||||
#ifdef CONFIG_IPV6_SUBTREES
|
||||
if (src) {
|
||||
@@ -4685,12 +4694,12 @@ static int rt6_fill_node(struct net *net, struct sk_buff *skb,
|
||||
goto nla_put_failure;
|
||||
rtm->rtm_src_len = 128;
|
||||
} else if (rtm->rtm_src_len &&
|
||||
nla_put_in6_addr(skb, RTA_SRC, &rt->fib6_src.addr))
|
||||
nla_put_in6_addr(skb, RTA_SRC, &rt6_src->addr))
|
||||
goto nla_put_failure;
|
||||
#endif
|
||||
if (iif) {
|
||||
#ifdef CONFIG_IPV6_MROUTE
|
||||
if (ipv6_addr_is_multicast(&rt->fib6_dst.addr)) {
|
||||
if (ipv6_addr_is_multicast(&rt6_dst->addr)) {
|
||||
int err = ip6mr_get_route(net, skb, rtm, portid);
|
||||
|
||||
if (err == 0)
|
||||
@@ -4725,7 +4734,14 @@ static int rt6_fill_node(struct net *net, struct sk_buff *skb,
|
||||
/* For multipath routes, walk the siblings list and add
|
||||
* each as a nexthop within RTA_MULTIPATH.
|
||||
*/
|
||||
if (rt->fib6_nsiblings) {
|
||||
if (rt6) {
|
||||
if (rt6_flags & RTF_GATEWAY &&
|
||||
nla_put_in6_addr(skb, RTA_GATEWAY, &rt6->rt6i_gateway))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (dst->dev && nla_put_u32(skb, RTA_OIF, dst->dev->ifindex))
|
||||
goto nla_put_failure;
|
||||
} else if (rt->fib6_nsiblings) {
|
||||
struct fib6_info *sibling, *next_sibling;
|
||||
struct nlattr *mp;
|
||||
|
||||
@@ -4748,7 +4764,7 @@ static int rt6_fill_node(struct net *net, struct sk_buff *skb,
|
||||
goto nla_put_failure;
|
||||
}
|
||||
|
||||
if (rt->fib6_flags & RTF_EXPIRES) {
|
||||
if (rt6_flags & RTF_EXPIRES) {
|
||||
expires = dst ? dst->expires : rt->expires;
|
||||
expires -= jiffies;
|
||||
}
|
||||
@@ -4756,7 +4772,7 @@ static int rt6_fill_node(struct net *net, struct sk_buff *skb,
|
||||
if (rtnl_put_cacheinfo(skb, dst, 0, expires, dst ? dst->error : 0) < 0)
|
||||
goto nla_put_failure;
|
||||
|
||||
if (nla_put_u8(skb, RTA_PREF, IPV6_EXTRACT_PREF(rt->fib6_flags)))
|
||||
if (nla_put_u8(skb, RTA_PREF, IPV6_EXTRACT_PREF(rt6_flags)))
|
||||
goto nla_put_failure;
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user