The handler 'ila_fill_encap_info' adds two attributes: ILA_ATTR_LOCATOR and ILA_ATTR_CSUM_MODE.
Also, do nla_put_u8 instead of nla_put_u64 for ILA_ATTR_CSUM_MODE. Fixes: 65d7ab8de582 ("net: Identifier Locator Addressing module") Reported-by: Nicolas Dichtel <nicolas.dich...@6wind.com> Signed-off-by: Tom Herbert <t...@herbertland.com> --- net/ipv6/ila/ila_lwt.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/net/ipv6/ila/ila_lwt.c b/net/ipv6/ila/ila_lwt.c index 4985e1a..7788090 100644 --- a/net/ipv6/ila/ila_lwt.c +++ b/net/ipv6/ila/ila_lwt.c @@ -133,7 +133,7 @@ static int ila_fill_encap_info(struct sk_buff *skb, if (nla_put_u64_64bit(skb, ILA_ATTR_LOCATOR, (__force u64)p->locator.v64, ILA_ATTR_PAD)) goto nla_put_failure; - if (nla_put_u64(skb, ILA_ATTR_CSUM_MODE, (__force u8)p->csum_mode)) + if (nla_put_u8(skb, ILA_ATTR_CSUM_MODE, (__force u8)p->csum_mode)) goto nla_put_failure; return 0; @@ -144,8 +144,12 @@ nla_put_failure: static int ila_encap_nlsize(struct lwtunnel_state *lwtstate) { - /* No encapsulation overhead */ - return 0; + return + /* ILA_ATTR_LOCATOR */ + nla_total_size(sizeof(u64)) + + /* ILA_ATTR_CSUM_MODE */ + nla_total_size(sizeof(u8)) + + 0; } static int ila_encap_cmp(struct lwtunnel_state *a, struct lwtunnel_state *b) -- 2.8.0.rc2