Lines Matching refs:attrs
344 struct nl_parsed_neigh *attrs = (struct nl_parsed_neigh *)_attrs; in post_p_neigh() local
346 set_scope6(attrs->nda_dst, attrs->nda_ifp); in post_p_neigh()
365 struct nl_parsed_neigh attrs = {}; in rtnl_handle_newneigh() local
366 error = nl_parse_nlmsg(hdr, &ndmsg_parser, npt, &attrs); in rtnl_handle_newneigh()
370 if (attrs.nda_ifp == NULL || attrs.nda_dst == NULL || attrs.nda_lladdr == NULL) { in rtnl_handle_newneigh()
371 if (attrs.nda_ifp == NULL) in rtnl_handle_newneigh()
373 if (attrs.nda_dst == NULL) in rtnl_handle_newneigh()
375 if (attrs.nda_lladdr == NULL) in rtnl_handle_newneigh()
380 if (attrs.nda_dst->sa_family != attrs.ndm_family) { in rtnl_handle_newneigh()
383 attrs.nda_dst->sa_family, attrs.ndm_family); in rtnl_handle_newneigh()
387 int addrlen = if_getaddrlen(attrs.nda_ifp); in rtnl_handle_newneigh()
388 if (attrs.nda_lladdr->nla_len != sizeof(struct nlattr) + addrlen) { in rtnl_handle_newneigh()
391 (int)attrs.nda_lladdr->nla_len - (int)sizeof(struct nlattr), addrlen); in rtnl_handle_newneigh()
396 if ((attrs.ndm_flags & supported_flags) != attrs.ndm_flags) { in rtnl_handle_newneigh()
398 attrs.ndm_flags &~ supported_flags); in rtnl_handle_newneigh()
406 struct lltable *llt = lltable_get(attrs.nda_ifp, attrs.ndm_family); in rtnl_handle_newneigh()
414 if (lltable_calc_llheader(attrs.nda_ifp, attrs.ndm_family, in rtnl_handle_newneigh()
415 (char *)(attrs.nda_lladdr + 1), linkhdr, &linkhdrsize, &lladdr_off) != 0) { in rtnl_handle_newneigh()
420 int lle_flags = (attrs.ndm_flags & NTF_PROXY) ? LLE_PUB : 0; in rtnl_handle_newneigh()
421 if (attrs.ndm_flags & NTF_STICKY) in rtnl_handle_newneigh()
423 struct llentry *lle = lltable_alloc_entry(llt, lle_flags, attrs.nda_dst); in rtnl_handle_newneigh()
426 lltable_set_entry_addr(attrs.nda_ifp, lle, linkhdr, linkhdrsize, lladdr_off); in rtnl_handle_newneigh()
428 if (attrs.ndm_flags & NTF_STICKY) in rtnl_handle_newneigh()
431 lle->la_expire = attrs.ndaf_next_ts - time_second + time_uptime; in rtnl_handle_newneigh()
434 IF_AFDATA_WLOCK(attrs.nda_ifp); in rtnl_handle_newneigh()
436 struct llentry *lle_tmp = lla_lookup(llt, LLE_EXCLUSIVE, attrs.nda_dst); in rtnl_handle_newneigh()
457 IF_AFDATA_WUNLOCK(attrs.nda_ifp); in rtnl_handle_newneigh()
478 struct nl_parsed_neigh attrs = {}; in rtnl_handle_delneigh() local
479 error = nl_parse_nlmsg(hdr, &ndmsg_parser, npt, &attrs); in rtnl_handle_delneigh()
483 if (attrs.nda_dst == NULL) { in rtnl_handle_delneigh()
488 if (attrs.nda_ifp == NULL) { in rtnl_handle_delneigh()
493 struct lltable *llt = lltable_get(attrs.nda_ifp, attrs.ndm_family); in rtnl_handle_delneigh()
497 return (lltable_delete_addr(llt, 0, attrs.nda_dst)); in rtnl_handle_delneigh()
505 struct nl_parsed_neigh attrs = {}; in rtnl_handle_getneigh() local
506 error = nl_parse_nlmsg(hdr, &ndmsg_parser, npt, &attrs); in rtnl_handle_getneigh()
510 if (attrs.nda_dst != NULL && attrs.nda_ifp == NULL) { in rtnl_handle_getneigh()
524 if (attrs.nda_dst == NULL) in rtnl_handle_getneigh()
525 error = dump_llts(&wa, attrs.nda_ifp, attrs.ndm_family); in rtnl_handle_getneigh()
527 error = get_lle(&wa, attrs.nda_ifp, attrs.ndm_family, attrs.nda_dst); in rtnl_handle_getneigh()