Lines Matching +full:software +full:- +full:dl

2  * sys-bsd.c - System-dependent procedures for setting up
3 * PPP interfaces on bsd-4.4-ish systems (including 386BSD, NetBSD, etc.)
5 * SPDX-License-Identifier: BSD-1-Clause
14 * distribution and use acknowledge that the software was developed
17 * from this software without specific prior written permission.
18 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
78 * SET_SA_FAMILY - set the sa_family field of a struct sockaddr,
90 * arp_SetProxy - Make a proxy ARP entry for the peer.
124 arpmsg.hdr.rtm_seq = ++bundle->routing_seq; in arp_ProxySub()
131 arpmsg.hdr.rtm_msglen = (char *) &arpmsg.hwa - (char *) &arpmsg in arp_ProxySub()
153 * arp_ClearProxy - Delete the proxy ARP entry for the peer.
164 * arp_SetProxy - Make a proxy ARP entry for the peer.
190 ((struct sockaddr_in *)&arpreq.arp_pa)->sin_addr.s_addr = addr.s_addr; in arp_SetProxy()
201 * arp_ClearProxy - Delete the proxy ARP entry for the peer.
210 ((struct sockaddr_in *)&arpreq.arp_pa)->sin_addr.s_addr = addr.s_addr; in arp_ClearProxy()
223 * arp_EtherAddr - get the hardware address of an interface on the
236 struct sockaddr_dl *dl; in arp_EtherAddr() local
264 if (ifm->ifm_type != RTM_IFINFO) in arp_EtherAddr()
266 dl = (struct sockaddr_dl *)(ifm + 1); /* Single _dl at end */ in arp_EtherAddr()
267 skip = (ifm->ifm_flags & (IFF_UP | IFF_BROADCAST | IFF_POINTOPOINT | in arp_EtherAddr()
269 ptr += ifm->ifm_msglen; /* First ifa_msghdr */ in arp_EtherAddr()
272 if (ifam->ifam_type != RTM_NEWADDR) /* finished ? */ in arp_EtherAddr()
274 ptr += ifam->ifam_msglen; in arp_EtherAddr()
275 if (skip || (ifam->ifam_addrs & (RTA_NETMASK|RTA_IFA)) != in arp_EtherAddr()
280 ptr == (char *)ifm + ifm->ifm_msglen + ifam->ifam_msglen) in arp_EtherAddr()
282 dl->sdl_nlen, dl->sdl_data); in arp_EtherAddr()
286 if (sa[RTAX_IFA]->sa_family == AF_INET) { in arp_EtherAddr()
295 strncpy(a, inet_ntoa(netmask->sin_addr), sizeof a - 1); in arp_EtherAddr()
296 a[sizeof a - 1] = '\0'; in arp_EtherAddr()
298 inet_ntoa(ifa->sin_addr), a); in arp_EtherAddr()
301 if ((ifa->sin_addr.s_addr & netmask->sin_addr.s_addr) == in arp_EtherAddr()
302 (ipaddr.s_addr & netmask->sin_addr.s_addr)) { in arp_EtherAddr()
304 "Found interface %.*s for %s\n", dl->sdl_nlen, in arp_EtherAddr()
305 dl->sdl_data, inet_ntoa(ipaddr)); in arp_EtherAddr()
306 memcpy(hwaddr, dl, dl->sdl_len); in arp_EtherAddr()