|
@@ -3604,23 +3604,23 @@ static void rtmsg_to_fib6_config(struct net *net,
|
|
struct in6_rtmsg *rtmsg,
|
|
struct in6_rtmsg *rtmsg,
|
|
struct fib6_config *cfg)
|
|
struct fib6_config *cfg)
|
|
{
|
|
{
|
|
- memset(cfg, 0, sizeof(*cfg));
|
|
|
|
|
|
+ *cfg = (struct fib6_config){
|
|
|
|
+ .fc_table = l3mdev_fib_table_by_index(net, rtmsg->rtmsg_ifindex) ?
|
|
|
|
+ : RT6_TABLE_MAIN,
|
|
|
|
+ .fc_ifindex = rtmsg->rtmsg_ifindex,
|
|
|
|
+ .fc_metric = rtmsg->rtmsg_metric,
|
|
|
|
+ .fc_expires = rtmsg->rtmsg_info,
|
|
|
|
+ .fc_dst_len = rtmsg->rtmsg_dst_len,
|
|
|
|
+ .fc_src_len = rtmsg->rtmsg_src_len,
|
|
|
|
+ .fc_flags = rtmsg->rtmsg_flags,
|
|
|
|
+ .fc_type = rtmsg->rtmsg_type,
|
|
|
|
+
|
|
|
|
+ .fc_nlinfo.nl_net = net,
|
|
|
|
|
|
- cfg->fc_table = l3mdev_fib_table_by_index(net, rtmsg->rtmsg_ifindex) ?
|
|
|
|
- : RT6_TABLE_MAIN;
|
|
|
|
- cfg->fc_ifindex = rtmsg->rtmsg_ifindex;
|
|
|
|
- cfg->fc_metric = rtmsg->rtmsg_metric;
|
|
|
|
- cfg->fc_expires = rtmsg->rtmsg_info;
|
|
|
|
- cfg->fc_dst_len = rtmsg->rtmsg_dst_len;
|
|
|
|
- cfg->fc_src_len = rtmsg->rtmsg_src_len;
|
|
|
|
- cfg->fc_flags = rtmsg->rtmsg_flags;
|
|
|
|
- cfg->fc_type = rtmsg->rtmsg_type;
|
|
|
|
-
|
|
|
|
- cfg->fc_nlinfo.nl_net = net;
|
|
|
|
-
|
|
|
|
- cfg->fc_dst = rtmsg->rtmsg_dst;
|
|
|
|
- cfg->fc_src = rtmsg->rtmsg_src;
|
|
|
|
- cfg->fc_gateway = rtmsg->rtmsg_gateway;
|
|
|
|
|
|
+ .fc_dst = rtmsg->rtmsg_dst,
|
|
|
|
+ .fc_src = rtmsg->rtmsg_src,
|
|
|
|
+ .fc_gateway = rtmsg->rtmsg_gateway,
|
|
|
|
+ };
|
|
}
|
|
}
|
|
|
|
|
|
int ipv6_route_ioctl(struct net *net, unsigned int cmd, void __user *arg)
|
|
int ipv6_route_ioctl(struct net *net, unsigned int cmd, void __user *arg)
|