Lines Matching +full:no +full:- +full:ether +full:- +full:link
1 /*-
2 * SPDX-License-Identifier: BSD-3-Clause
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
65 *format_char = '-'; in print_ether()
91 print_ether((struct ether_addr *)LLADDR(sdl), "ether"); in print_lladdr()
93 int n = sdl->sdl_nlen > 0 ? sdl->sdl_nlen + 1 : 0; in print_lladdr()
112 /* XXX no const 'cuz LLADDR is defined wrong */ in link_status()
118 sdl = satosdl(ifa->ifa_addr); in link_status()
119 if (sdl == NULL || sdl->sdl_alen == 0) in link_status()
125 * Best-effort (i.e. failures are silent) to get original in link_status()
128 * interfaces claim to be IFT_ETHER, and re-type their component in link_status()
132 if ((sdl->sdl_type != IFT_ETHER && in link_status()
133 sdl->sdl_type != IFT_IEEE8023ADLAG) || in link_status()
134 sdl->sdl_alen != ETHER_ADDR_LEN) in link_status()
137 strncpy(ifr.ifr_name, ifa->ifa_name, sizeof(ifr.ifr_name)); in link_status()
138 memcpy(&ifr.ifr_addr, ifa->ifa_addr, sizeof(ifa->ifa_addr->sa_len)); in link_status()
151 * matches the link addr, don't bother. in link_status()
153 if (memcmp(ifr.ifr_addr.sa_data, laggaddr, sdl->sdl_alen) == 0 || in link_status()
154 memcmp(ifr.ifr_addr.sa_data, LLADDR(sdl), sdl->sdl_alen) == 0) in link_status()
165 link_status_nl(if_ctx *ctx, if_link_t *link, if_addr_t *ifa __unused) in link_status_nl() argument
167 if (link->ifla_address != NULL) { in link_status_nl()
171 .sdl_type = convert_iftype(link->ifi_type), in link_status_nl()
172 .sdl_alen = NLA_DATA_LEN(link->ifla_address), in link_status_nl()
174 memcpy(LLADDR(&sdl), NLA_DATA(link->ifla_address), sdl.sdl_alen); in link_status_nl()
177 if (link->iflaf_orig_hwaddr != NULL) { in link_status_nl()
178 struct nlattr *hwaddr = link->iflaf_orig_hwaddr; in link_status_nl()
180 if (memcmp(NLA_DATA(hwaddr), NLA_DATA(link->ifla_address), sdl.sdl_alen)) in link_status_nl()
184 if (convert_iftype(link->ifi_type) == IFT_ETHER) in link_status_nl()
197 errx(1, "can't set link-level netmask or broadcast"); in link_getaddr()
204 /* Non-multicast and claim it is locally administered. */ in link_getaddr()
216 if (sdl.sdl_alen > sizeof(sa->sa_data)) in link_getaddr()
217 errx(1, "malformed link-level address"); in link_getaddr()
218 sa->sa_family = AF_LINK; in link_getaddr()
219 sa->sa_len = sdl.sdl_alen; in link_getaddr()
220 bcopy(LLADDR(&sdl), sa->sa_data, sdl.sdl_alen); in link_getaddr()
224 .af_name = "link",
237 .af_name = "ether",