On 6/18/15, 11:59 PM, Julian Anastasov wrote:
Hello,
On Thu, 18 Jun 2015, Roopa Prabhu wrote:
@@ -366,6 +371,7 @@ static inline size_t fib_nlmsg_size(struct fib_info *fi)
payload += nla_total_size((RTAX_MAX * nla_total_size(4)));
if (fi->fib_nhs) {
+ size_t nh_encapsize = 0;
Var not in #ifdef. Any warnings with CONFIG_LWTUNNEL=n?
/* Also handles the special case fib_nhs == 1 */
/* each nexthop is packed in an attribute */
@@ -374,8 +380,23 @@ static inline size_t fib_nlmsg_size(struct fib_info *fi)
/* may contain flow and gateway attribute */
nhsize += 2 * nla_total_size(4);
+#ifdef CONFIG_LWTUNNEL
+ /* grab encap info */
+ for_nexthops(fi) {
+ if (nh->nh_lwtstate) {
+ /* RTA_ENCAP_TYPE */
+ nh_encapsize += lwtunnel_get_encap_size(
+ nh->nh_lwtstate);
New labels not in #ifdef:
Will check and fix all warnings with CONFIG_LWTUNNEL off
+
+err_inval:
+ ret = -EINVAL;
+
+errout:
+ return ret;
}
Some other places may need changes:
- nh_comp: there is logic that decides if same fib_info
is reused from many fib nodes. There should be check
if NH matches by nh_lwtstate.
yes, i will add that.
- xfrm4_fill_dst: not sure about this but some fields
are copied.
I have not picked up xfrm4_fill_dst specifically, but this infra is
supposed to be similar to that.
I will look.
Thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in