Lines Matching refs:nla
88 tunnel_key_copy_geneve_opt(const struct nlattr *nla, void *dst, int dst_len,
97 nla, geneve_opt_policy, extack);
140 tunnel_key_copy_vxlan_opt(const struct nlattr *nla, void *dst, int dst_len,
146 err = nla_parse_nested(tb, TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX, nla,
167 tunnel_key_copy_erspan_opt(const struct nlattr *nla, void *dst, int dst_len,
174 err = nla_parse_nested(tb, TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX, nla,
206 nla = tb[TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_INDEX];
207 md->u.index = nla_get_be32(nla);
209 nla = tb[TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_DIR];
210 md->u.md2.dir = nla_get_u8(nla);
211 nla = tb[TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_HWID];
212 set_hwid(&md->u.md2, nla_get_u8(nla));
219 static int tunnel_key_copy_opts(const struct nlattr *nla, u8 *dst,
222 int err, rem, opt_len, len = nla_len(nla), opts_len = 0, type = 0;
223 const struct nlattr *attr, *head = nla_data(nla);
292 static int tunnel_key_get_opts_len(struct nlattr *nla,
295 return tunnel_key_copy_opts(nla, NULL, 0, extack);
298 static int tunnel_key_opts_set(struct nlattr *nla, struct ip_tunnel_info *info,
302 switch (nla_type(nla_data(nla))) {
306 return tunnel_key_copy_opts(nla, ip_tunnel_info_opts(info),
314 return tunnel_key_copy_opts(nla, ip_tunnel_info_opts(info),
322 return tunnel_key_copy_opts(nla, ip_tunnel_info_opts(info),
357 static int tunnel_key_init(struct net *net, struct nlattr *nla,
380 if (!nla) {
385 err = nla_parse_nested_deprecated(tb, TCA_TUNNEL_KEY_MAX, nla,