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

Reply via email to