Lines Matching defs:ifname

124  * Returns B_FALSE if the interface in `ifname' has at least one address that is
128 i_ipadm_is_if_down(char *ifname, struct ifaddrs *ifa)
139 if (strcmp(cifname, ifname) == 0 &&
152 i_ipadm_alloc_ifname(ipadm_ifname_t **ifp, const char *ifname)
157 (void) strlcpy((*ifp)->ifn_name, ifname, sizeof ((*ifp)->ifn_name));
165 i_ipadm_alloc_if_info(ipadm_if_info_t **ifp, const char *ifname)
174 (void) strlcpy((*ifp)->ifi_name, ifname, sizeof ((*ifp)->ifi_name));
179 * Returns B_TRUE if `ifname' in the given list of structures of type
183 i_ipadm_ifname_in_list(list_t *ifnames, const char *ifname)
189 if (strcmp(ifname, ifp->ifn_name) == 0)
195 * Gets all the underlying interfaces for the interface `ifname', using
200 i_ipadm_get_underifs(ipadm_handle_t iph, const char *ifname, list_t *unders,
209 status = i_ipadm_get_groupname(iph, ifname, i_grname, bufsize);
214 strcmp(ifa->ifa_name, ifname) == 0)
235 * Retrieves the information for the interface `ifname' from active
236 * config if `ifname' is specified and returns the result in the list `if_info'.
241 i_ipadm_active_if_info(ipadm_handle_t iph, const char *ifname,
303 * Skip the current interface if a specific `ifname' has
305 * `ifname'.
307 if (ifname != NULL && strcmp(cifname, ifname) != 0)
401 if (ifname != NULL && list_is_empty(if_info)) {
413 * Returns the interface information for `ifname' in `if_info' from persistent
414 * config if `ifname' is non-null. Otherwise, it returns all the interfaces
418 i_ipadm_persist_if_info(ipadm_handle_t iph, const char *ifname,
438 if (ifname != NULL)
439 (void) strlcpy(getif.ia_ifname, ifname, LIFNAMSIZ);
453 if (err == ENOENT && ifname == NULL)
530 * Collects information for `ifname' if one is specified from both
531 * active and persistent config in `if_info'. If no `ifname' is specified,
536 i_ipadm_get_all_if_info(ipadm_handle_t iph, const char *ifname,
545 * Retrieve the information for the requested `ifname' or all
548 a_status = i_ipadm_active_if_info(iph, ifname, if_info, lifc_flags);
554 status = i_ipadm_persist_if_info(iph, ifname, &pifinfo);
556 * If no persistent information is found for `ifname', return
614 i_ipadm_get_lnum(const char *ifname)
616 char *num = strchr(ifname, IPADM_LOGICAL_SEP);
625 i_ipadm_get_ifname(const char *lifname, char *ifname, size_t len)
629 (void) strlcpy(ifname, lifname, len);
630 if ((cp = strchr(ifname, IPADM_LOGICAL_SEP)) != NULL)
636 * available for 'ifname'. It sets v4 and v6 to B_TRUE or B_FALSE to indicate
641 i_ipadm_if_pexists_af(ipadm_handle_t iph, const char *ifname, boolean_t *v4,
658 status = i_ipadm_persist_if_info(iph, ifname, &ifinfo);
671 * is available for `ifname' for the address family `af'. If `af' = AF_UNSPEC,
675 i_ipadm_if_pexists(ipadm_handle_t iph, const char *ifname, sa_family_t af)
679 if (i_ipadm_if_pexists_af(iph, ifname, &isv4, &isv6)) {
720 * Checks if `ifname' is plumbed and in an IPMP group on its "other" address
724 i_ipadm_create_ipmp_peer(ipadm_handle_t iph, const char *ifname, sa_family_t af)
739 (void) strlcpy(lifr.lifr_name, ifname, sizeof (lifr.lifr_name));
748 * If `ifname' *is* the IPMP group interface, or if the relevant
751 if (strcmp(lifgr.gi_grifname, ifname) == 0 ||
764 i_ipadm_slifname_arp(char *ifname, uint64_t flags, int fd)
770 (void) ifparse_ifspec(ifname, &ifsp);
773 (void) strlcpy(lifr.lifr_name, ifname, sizeof (lifr.lifr_name));
791 i_ipadm_slifname(ipadm_handle_t iph, char *ifname, char *newif, uint64_t flags,
830 ifname, ppa);
855 if (snprintf(newif, LIFNAMSIZ, "%s%d", ifname,
861 valid_if = ifparse_ifspec(ifname, &ifsp);
879 status = i_ipadm_create_ipmp_peer(iph, ifname, af);
884 (void) strlcpy(lifr.lifr_name, ifname, sizeof (lifr.lifr_name));
918 * Plumbs the interface `ifname' for the address family `af'. It also persists
922 i_ipadm_plumb_if(ipadm_handle_t iph, char *ifname, sa_family_t af,
941 if (ipadm_if_enabled(iph, ifname, af))
948 status = i_ipadm_plumb_lif(iph, ifname, af, class);
954 status = i_ipadm_persist_if(iph, ifname, af, class);
956 (void) i_ipadm_delete_if(iph, ifname, af,
975 linkname = ifname;
1013 is_6to4 = i_ipadm_is_6to4(iph, ifname);
1017 (void) strlcpy(newif, ifname, sizeof (newif));
1018 status = i_ipadm_slifname(iph, ifname, newif, ifflags, ip_fd,
1092 * The ifname might have been appended with a ppa, when
1093 * IPADM_OPT_GENPPA is set. Copy back the modified ifname.
1095 (void) strlcpy(ifname, newif, LIFNAMSIZ);
1102 status = i_ipadm_persist_if(iph, ifname, af, class);
1104 (void) i_ipadm_delete_if(iph, ifname, af,
1120 (void) i_ipadm_disable_autoconf(ifname);
1136 i_ipadm_init_addr(&addr, ifname, "", type);
1158 status = i_ipadm_send_ndpd_cmd(ifname, &addr,
1172 (void) i_ipadm_delete_if(iph, ifname, af, class, del_flags);
1177 * Unplumbs the interface in `ifname' of family `af'.
1180 i_ipadm_unplumb_if(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1201 if (i_ipadm_get_lnum(ifname) != 0 || ipadm_is_loopback(ifname))
1202 return (i_ipadm_unplumb_lif(iph, ifname, af, ipadm_flags));
1222 ret = i_ipadm_get_flags(iph, ifname, af, &flags);
1226 (void) strlcpy(lifr.lifr_name, ifname, sizeof (lifr.lifr_name));
1260 if (ifaddrlistx(ifname, IFF_UP|IFF_DUPLICATE,
1382 (void) i_ipadm_enable_autoconf(ifname);
1388 * Unplumbs the logical interface or the loopback interface in `ifname' of
1393 i_ipadm_unplumb_lif(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1402 (void) strlcpy(lifr.lifr_name, ifname, sizeof (lifr.lifr_name));
1405 status = i_ipadm_get_lif2addrobj(iph, ifname, af, &ipaddr);
1419 * Saves the given interface name `ifname' with address family `af' in
1423 i_ipadm_persist_if(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1429 (void) strlcpy(ifarg.ia_ifname, ifname, sizeof (ifarg.ia_ifname));
1442 nwam_ncu_external_action(NWAM_NCU_TYPE_INTERFACE, ifname,
1444 i_ipadm_ifname_is_ip(iph, ifname) ? ifname : NULL,
1453 * `ifname' with address family `af' from ipmgmtd daemon. If IPADM_OPT_PERSIST
1454 * is set in `flags', all interface properties and address objects of `ifname'
1458 i_ipadm_delete_ifobj(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1471 (void) strlcpy(ifarg.ia_ifname, ifname, LIFNAMSIZ);
1483 !i_ipadm_if_pexists(iph, ifname, AF_UNSPEC)) {
1484 nwam_ncu_external_action(NWAM_NCU_TYPE_INTERFACE, ifname,
1486 i_ipadm_ifname_is_ip(iph, ifname) ? ifname : NULL,
1494 * Creates the loopback interface in `ifname' for the given address family
1508 ipadm_create_loopback(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1511 if (!ipadm_is_loopback(ifname) || (flags & IPADM_OPT_GENPPA) != 0)
1517 return (i_ipadm_create_if(iph, (char *)ifname, af,
1522 * Function that adds a logical interface to `ifname'. On return,
1527 i_ipadm_plumb_lif(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1535 (void) strlcpy(lifr.lifr_name, ifname, sizeof (lifr.lifr_name));
1564 * Creates the VNI interface in `ifname' for the given address family `af'.
1568 ipadm_create_vni(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1571 if (!ipadm_is_vni(ifname) || (flags & IPADM_OPT_GENPPA) != 0)
1573 return (i_ipadm_create_if(iph, (char *)ifname, af, IPADMIF_CLASS_VNI,
1578 * Creates the IP interface in `ifname' for the given address family `af'.
1582 ipadm_create_ip(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1590 if (!ipadm_is_ip(iph, ifname) || (flags & IPADM_OPT_GENPPA) != 0)
1594 dlstatus = dladm_name2info(iph->ih_dh, ifname, &linkid,
1624 return (i_ipadm_create_if(iph, (char *)ifname, af, IPADMIF_CLASS_IP,
1629 * Creates the IPMP interface in `ifname' for the given address family
1631 * AF_UNSPEC. `ifname' must point to memory that can hold up to LIFNAMSIZ
1636 ipadm_create_ipmp(ipadm_handle_t iph, char *ifname, sa_family_t af,
1639 return (i_ipadm_create_if(iph, ifname, af, IPADMIF_CLASS_IPMP, flags));
1643 i_ipadm_create_if_common(ipadm_handle_t iph, char *ifname, sa_family_t af,
1651 status = i_ipadm_plumb_if(iph, ifname, af, class, flags);
1661 if (ipadm_is_under_ipmp(iph, ifname)) {
1662 status = i_ipadm_set_flags(iph, ifname, af, IFF_UP, 0);
1664 (void) i_ipadm_unplumb_if(iph, ifname, af, flags);
1681 * `ifname' must point to memory that can hold upto LIFNAMSIZ chars. It may
1686 i_ipadm_create_if(ipadm_handle_t iph, char *ifname, sa_family_t af,
1694 status = i_ipadm_validate_ifcreate(iph, ifname, af, flags);
1709 if ((status = i_ipadm_persist_if(iph, ifname,
1715 status = i_ipadm_persist_if(iph, ifname,
1718 (void) i_ipadm_delete_if(iph, ifname,
1727 if (i_ipadm_get_lnum(ifname) != 0)
1728 return (i_ipadm_plumb_lif(iph, ifname, af, class));
1730 return (i_ipadm_plumb_if(iph, ifname, af, class, flags));
1732 pflags = i_ipadm_get_pflags(iph, ifname);
1739 !ipadm_if_enabled(iph, ifname, AF_UNSPEC))
1743 !i_ipadm_is_6to4(iph, ifname)) {
1744 if ((status = i_ipadm_create_if_common(iph, ifname, AF_INET,
1756 if ((status = i_ipadm_create_if_common(iph, ifname, AF_INET6,
1763 (void) i_ipadm_delete_if(iph, ifname, AF_INET, class,
1770 * Creates the IPMP interface `ifname' for address family `af', which is
1781 i_ipadm_create_ipmp(ipadm_handle_t iph, char *ifname, sa_family_t af,
1788 if (i_ipadm_if_pexists(iph, ifname, AF_UNSPEC))
1791 status = i_ipadm_create_if(iph, ifname, af, IPADMIF_CLASS_IPMP,
1800 (void) i_ipadm_set_flags(iph, ifname, AF_INET6, IFF_UP, 0);
1807 * Deletes the loopback interface in `ifname' for the given address family
1816 ipadm_delete_loopback(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1819 if (!ipadm_is_loopback(ifname) || af == AF_UNSPEC)
1823 return (i_ipadm_delete_if(iph, ifname, af, IPADMIF_CLASS_LOOPBACK,
1828 * Deletes the interface of class IPADMIF_CLASS_VNI in `ifname'.
1832 ipadm_delete_vni(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1835 if (!ipadm_is_vni(ifname))
1837 return (i_ipadm_delete_if(iph, ifname, af, IPADMIF_CLASS_VNI, flags));
1841 * Deletes the interface of class IPADMIF_CLASS_VNI in `ifname'.
1845 ipadm_delete_ip(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1848 if (!ipadm_is_ip(iph, ifname) || ipadm_ipmp_pexists(iph, ifname))
1850 return (i_ipadm_delete_if(iph, ifname, af, IPADMIF_CLASS_IP, flags));
1854 * Deletes the interface of class IPADMIF_CLASS_IPMP in `ifname'.
1858 ipadm_delete_ipmp(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1861 if (!ipadm_is_ipmp(iph, ifname) && !ipadm_ipmp_pexists(iph, ifname))
1863 return (i_ipadm_delete_if(iph, ifname, af, IPADMIF_CLASS_IPMP, flags));
1919 * Deletes the IP interface in `ifname'. Removes both IPv4 and IPv6 interfaces
1923 i_ipadm_delete_if(ipadm_handle_t iph, const char *ifname, sa_family_t af,
1939 if (!i_ipadm_validate_ifname(iph, ifname))
1953 status1 = i_ipadm_delete_ifobj(iph, ifname,
1959 status2 = i_ipadm_delete_ifobj(iph, ifname,
1983 status1 = i_ipadm_active_if_info(iph, ifname, &ifinfo, 0);
1989 status1 = ipadm_remove_ipmp(iph, ifname,
2009 status1 = i_ipadm_unplumb_if(iph, ifname, AF_INET, flags);
2012 ret = i_ipadm_delete_ifobj(iph, ifname, AF_INET, flags);
2018 status2 = i_ipadm_unplumb_if(iph, ifname, AF_INET6, flags);
2021 ret = i_ipadm_delete_ifobj(iph, ifname, AF_INET6,
2244 * Removes the underlying interface `ifname' from the IPMP interface with
2304 * `ifname' for address family `af'.
2307 i_ipadm_ifaddr_unspec(ipadm_handle_t iph, const char *ifname, sa_family_t af)
2312 (void) strlcpy(lifr.lifr_name, ifname, sizeof (lifr.lifr_name));
2387 * Mark the addresses on `ifname' as test addresses. This is called by a
2388 * non-legacy application (e.g. ipadm(1M)) after adding `ifname' to an
2392 ipadm_mark_testaddrs(ipadm_handle_t iph, const char *ifname)
2394 return (i_ipadm_mark_testaddrs_common(iph, ifname, B_TRUE));
2398 * Clear the test addresses on `ifname'. This is called by a non-legacy
2399 * application (e.g. ipadm(1M)) after removing `ifname' from an IPMP group.
2402 ipadm_clear_testaddrs(ipadm_handle_t iph, const char *ifname)
2404 return (i_ipadm_mark_testaddrs_common(iph, ifname, B_FALSE));
2408 i_ipadm_mark_testaddrs_common(ipadm_handle_t iph, const char *ifname,
2419 status = ipadm_addr_info(iph, ifname, &ainfo, 0, LIFC_UNDER_IPMP);
2429 if (strcmp(tmp_ifname, ifname) != 0)
2491 * Bring down the IFF_UP and IFF_DUPLICATE addresses on interface `ifname' and
2496 ipadm_down_addrs(ipadm_handle_t iph, const char *ifname,
2504 status = ipadm_addr_info(iph, ifname, downaddrs, IPADM_OPT_ZEROADDR, 0);
2590 ipadm_wait_app_addrs(ipadm_handle_t iph, const char *ifname)
2603 status = ipadm_addr_info(iph, ifname, &ainfo,
2627 * `ifname' that is not already plumbed. If both IPv4 and IPv6 are already
2631 ipadm_create_ipmp_implicit(ipadm_handle_t iph, const char *ifname)
2635 if (!ipadm_if_enabled(iph, ifname, AF_INET))
2637 else if (!ipadm_if_enabled(iph, ifname, AF_INET6))
2643 * do not contain IPADM_OPT_GENPPA and ifname will not be modified
2646 return (i_ipadm_create_ipmp(iph, (char *)ifname, af, B_TRUE,
2654 * If `ifname' is not NULL, it returns only the interface identified by
2655 * `ifname'.
2662 ipadm_if_info(ipadm_handle_t iph, const char *ifname,
2671 if (ifname != NULL &&
2672 (!ifparse_ifspec(ifname, &ifsp) || ifsp.ifsp_lunvalid)) {
2676 status = i_ipadm_get_all_if_info(iph, ifname, if_info, lifc_flags);
2715 * nvlist `onvl' for `ifname'.
2718 i_ipadm_get_db_initif(ipadm_handle_t iph, const char *ifname, nvlist_t **onvl)
2727 (void) strlcpy(initif.ia_ifname, ifname, LIFNAMSIZ);
2748 * Re-enable the interface `ifname' based on the saved configuration
2749 * for `ifname'.
2752 ipadm_enable_if(ipadm_handle_t iph, const char *ifname, uint32_t flags)
2764 if (!ifparse_ifspec(ifname, &ifsp) || ifsp.ifsp_lunvalid)
2781 if (ipadm_if_enabled(iph, ifname, AF_INET) &&
2782 ipadm_if_enabled(iph, ifname, AF_INET6)) {
2789 status = i_ipadm_get_db_initif(iph, ifname, &ifnvl);
2801 rstatus = i_ipadm_enable_if(iph, ifname, ifnvl, flags);
2808 * Disable the interface `ifname' by removing it from the active configuration.
2812 ipadm_disable_if(ipadm_handle_t iph, const char *ifname, uint32_t flags)
2822 if (!ifparse_ifspec(ifname, &ifsp) || ifsp.ifsp_lunvalid)
2829 if (ipadm_is_loopback(ifname) || (flags & IPADM_OPT_PERSIST))
2839 return (i_ipadm_disable_if(iph, ifname, flags));
2844 i_ipadm_disable_if(ipadm_handle_t iph, const char *ifname, uint32_t flags)
2848 status1 = i_ipadm_unplumb_if(iph, ifname, AF_INET6, IPADM_OPT_ACTIVE);
2850 status1 = i_ipadm_delete_ifobj(iph, ifname, AF_INET6,
2852 status2 = i_ipadm_unplumb_if(iph, ifname, AF_INET, IPADM_OPT_ACTIVE);
2854 status2 = i_ipadm_delete_ifobj(iph, ifname, AF_INET,
3075 i_ipadm_enable_ipmp_dhcpaddrs(ipadm_handle_t iph, const char *ifname)
3079 if (ipadm_addr_info(iph, ifname, &ainfo, 0,