Lines Matching +defs:map +defs:link
242 * o In case of a user specified cpulist present on underlying link and flows,
243 * the flows cpulist must be a subset of the underlying link.
244 * o In case of a user specified fanout mode present on link and flow, the
246 * underlying link. The cpu-bindings for the subflows will be a subset of
247 * the underlying link.
248 * o In case if no cpulist specified on both underlying link and flow, the
249 * underlying link relies on a MAC tunable to provide out of box fanout.
251 * o In case if no cpulist is specified on the underlying link, a subflow can
254 * of the underlying link.
255 * o In case where the underlying link is carrying either a user specified
261 * o In addition to this, while cycling between flow and link properties, we
262 * impose a restriction that if a link property has a subflow with
263 * user-specified attributes, we will not allow changing the link property.
265 * subflows before attempting a link property change.
267 * line options while creating or modifying link or subflow properties.
368 * when holding a reference on a link or when holding mip->mi_bridge_lock and
1689 * MAC such that it refers to a link that can actively be used to send traffic.
1694 * to potentially restore the link.
3419 * data link because it shares its ring with the
4365 * Once we take a reference on the bridge link, the bridge
4610 * any time (by the user action of removing a link) and if the
4891 mac_address_t *map;
4895 for (map = mip->mi_addresses; map != NULL; map = map->ma_next) {
4896 if (bcmp(mac_addr, map->ma_addr, map->ma_len) == 0)
4900 return (map);
4907 mac_check_macaddr_shared(mac_address_t *map)
4909 ASSERT(MAC_PERIM_HELD((mac_handle_t)map->ma_mip));
4911 return (map->ma_nusers > 1);
4918 mac_free_macaddr(mac_address_t *map)
4920 mac_impl_t *mip = map->ma_mip;
4925 map = mac_find_macaddr(mip, map->ma_addr);
4927 ASSERT(map != NULL);
4928 ASSERT(map->ma_nusers == 0);
4930 if (map == mip->mi_addresses) {
4931 mip->mi_addresses = map->ma_next;
4936 while (pre->ma_next != map)
4938 pre->ma_next = map->ma_next;
4941 kmem_free(map, sizeof (mac_address_t));
4960 mac_address_t *map;
4966 map = mac_find_macaddr(mip, mac_addr);
4972 if (map == NULL) {
4973 map = kmem_zalloc(sizeof (mac_address_t), KM_SLEEP);
4974 map->ma_len = mip->mi_type->mt_addr_length;
4975 bcopy(mac_addr, map->ma_addr, map->ma_len);
4976 map->ma_nusers = 0;
4977 map->ma_group = group;
4978 map->ma_mip = mip;
4981 map->ma_next = mip->mi_addresses;
4982 mip->mi_addresses = map;
4987 ASSERT(map->ma_group == NULL || map->ma_group == group);
4988 if (map->ma_group == NULL)
4989 map->ma_group = group;
4995 if (map->ma_nusers++ > 0)
5004 map->ma_type = MAC_ADDRESS_TYPE_UNICAST_CLASSIFIED;
5025 (bcmp(map->ma_addr, mip->mi_addr, map->ma_len) == 0)) {
5026 map->ma_type = MAC_ADDRESS_TYPE_UNICAST_CLASSIFIED;
5035 map->ma_type = MAC_ADDRESS_TYPE_UNICAST_PROMISC;
5046 map->ma_nusers--;
5048 mac_free_macaddr(map);
5058 mac_remove_macaddr(mac_address_t *map)
5060 mac_impl_t *mip = map->ma_mip;
5065 ASSERT(map == mac_find_macaddr(mip, map->ma_addr));
5071 if (--map->ma_nusers > 0)
5079 switch (map->ma_type) {
5085 if (map->ma_group == NULL)
5088 err = mac_group_remmac(map->ma_group, map->ma_addr);
5090 map->ma_group = NULL;
5106 if (bcmp(map->ma_addr, mip->mi_addr, map->ma_len) != 0)
5107 mac_free_macaddr(map);
5117 mac_update_macaddr(mac_address_t *map, uint8_t *mac_addr)
5119 mac_impl_t *mip = map->ma_mip;
5125 switch (map->ma_type) {
5143 if (map->ma_nusers == 0)
5149 err = mac_group_remmac(map->ma_group, map->ma_addr);
5153 err = mac_group_addmac(map->ma_group, mac_addr);
5161 (void) mac_group_addmac(map->ma_group, map->ma_addr);
5177 bcopy(mac_addr, map->ma_addr, map->ma_len);
5189 mac_freshen_macaddr(mac_address_t *map, uint8_t *mac_addr)
5191 mac_impl_t *mip = map->ma_mip;
5199 bcopy(mac_addr, map->ma_addr, map->ma_len);
5200 bcopy(mac_addr, mip->mi_addr, map->ma_len);
5205 mac_unicast_update_clients(mip, map);
5214 mac_address_t *map;
5220 map = kmem_zalloc(sizeof (mac_address_t), KM_SLEEP);
5221 map->ma_len = mip->mi_type->mt_addr_length;
5222 bcopy(mip->mi_addr, map->ma_addr, map->ma_len);
5230 map->ma_type = MAC_ADDRESS_TYPE_UNICAST_CLASSIFIED;
5232 map->ma_mip = mip;
5234 mip->mi_addresses = map;
5244 mac_address_t *map = mip->mi_addresses;
5246 if (map == NULL)
5253 ASSERT(map->ma_nusers == 0);
5254 ASSERT(map->ma_next == NULL);
5256 kmem_free(map, sizeof (mac_address_t));
5369 /* Write the link description to a netinfo_t record */
5405 /* Write the link statistics to a netinfo_t record */
5525 * hasn't already been done. Additionally, log statistics for the link as
5568 * link as we haven't logged the link itself.
5665 * link and/or flow information.
5771 * Stop the logging timer if both link and flow logging are turned off.
6336 mac_address_t *map;
6358 if (!move && (map = mac_find_macaddr(mip, mac_addr)) != NULL) {
6359 if (map->ma_group != NULL)
6360 return (map->ma_group);
7404 mac_bridge_set(mac_handle_t mh, mac_handle_t link)
7411 mip->mi_bridge_link = link;
7425 * Disable bridging on the indicated link.
7428 mac_bridge_clear(mac_handle_t mh, mac_handle_t link)
7433 ASSERT(mip->mi_bridge_link == link);
7788 * The pool associated with the link has changed.
7797 * This link is associated with pool_default and