Lines Matching defs:node

71 	CACHE_NODE_OFFLINED		= 0x04,	/* node offlined */
215 link_cache_t *node;
222 * rcm_register_interest() for each node before we free it, the
226 node = cache_head.vc_next;
227 while (node != &cache_tail) {
228 cache_remove(node);
229 node_free(node);
230 node = cache_head.vc_next;
325 link_cache_t *node;
331 node = cache_head.vc_next;
332 while (node != &cache_tail) {
333 if (rcm_unregister_interest(hd, node->vc_resource, 0)
338 node->vc_resource);
342 cache_remove(node);
343 node_free(node);
344 node = cache_head.vc_next;
377 link_cache_t *node;
383 node = cache_lookup(hd, rsrc, CACHE_REFRESH);
384 if (node == NULL) {
396 if (node->vc_aggr->da_lastport == node->vc_linkid) {
397 if (aggr_consumer_offline(hd, node, errorp, flags,
402 aggr_log_err(node->vc_linkid, errorp,
417 if (aggr_offline_port(node, CACHE_NODE_OFFLINED) != RCM_SUCCESS) {
418 aggr_log_err(node->vc_linkid, errorp, "offline port failed");
436 link_cache_t *node;
442 node = cache_lookup(hd, rsrc, CACHE_NO_REFRESH);
443 if (node == NULL) {
452 if (!(node->vc_state & CACHE_NODE_OFFLINED)) {
453 aggr_log_err(node->vc_linkid, errorp, "resource not offlined");
459 if (aggr_online_port(node, &up) != RCM_SUCCESS) {
460 aggr_log_err(node->vc_linkid, errorp, "online failed");
471 if (aggr_consumer_online(hd, node, errorp, flags, depend_info) ==
480 node->vc_state &= ~CACHE_NODE_OFFLINED;
487 aggr_offline_port(link_cache_t *node, cache_node_state_t state)
495 node->vc_resource);
497 aggr = node->vc_aggr;
502 if (aggr->da_lastport == node->vc_linkid) {
510 node->vc_resource, aggr->da_aggrid);
511 port.lp_linkid = node->vc_linkid;
524 node->vc_state |= (CACHE_AGGR_PORT_OFFLINED | state);
530 aggr_online_port(link_cache_t *node, boolean_t *up)
538 node->vc_resource);
541 if (!(node->vc_state & CACHE_AGGR_PORT_OFFLINED))
548 aggr = node->vc_aggr;
549 if (aggr->da_lastport == node->vc_linkid) {
557 node->vc_resource, aggr->da_aggrid);
558 port.lp_linkid = node->vc_linkid;
569 node->vc_state &= ~CACHE_AGGR_PORT_OFFLINED;
581 link_cache_t *node;
586 node = cache_lookup(hd, rsrc, CACHE_REFRESH);
587 if (node == NULL) {
598 *usagep = aggr_usage(node);
649 link_cache_t *node;
657 node = cache_lookup(hd, rsrc, CACHE_NO_REFRESH);
658 if (node == NULL) {
667 cache_remove(node);
674 if (node->vc_state & CACHE_AGGR_CONSUMER_OFFLINED) {
675 aggr = node->vc_aggr;
687 node_free(node);
764 aggr_usage(link_cache_t *node)
773 rcm_log_message(RCM_TRACE2, "AGGR: usage(%s)\n", node->vc_resource);
776 if (node->vc_state & CACHE_NODE_OFFLINED)
781 if ((status = dladm_datalink_id2info(dld_handle, node->vc_linkid, NULL,
785 node->vc_resource, dladm_status2str(status, errmsg));
794 node->vc_resource, strerror(errno));
799 if (node->vc_state & CACHE_NODE_OFFLINED) {
802 node->vc_resource, buf);
807 node->vc_aggr->da_aggrid, NULL, NULL, NULL, name,
811 node->vc_resource, node->vc_aggr->da_aggrid,
820 node->vc_resource, buf);
830 * cache_lookup() - Get a cache node for a resource.
839 link_cache_t *node;
851 node = cache_head.vc_next;
852 for (; node != &cache_tail; node = node->vc_next) {
853 if (strcmp(rsrc, node->vc_resource) == 0) {
856 return (node);
863 * node_free - Free a node from the cache
866 node_free(link_cache_t *node)
868 free(node->vc_resource);
869 free(node);
873 * cache_insert - Insert a resource node in cache
876 cache_insert(link_cache_t *node)
881 node->vc_next = cache_head.vc_next;
882 node->vc_prev = &cache_head;
884 node->vc_next->vc_prev = node;
885 node->vc_prev->vc_next = node;
889 * cache_remove() - Remove a resource node from cache.
893 cache_remove(link_cache_t *node)
896 node->vc_next->vc_prev = node->vc_prev;
897 node->vc_prev->vc_next = node->vc_next;
898 node->vc_next = NULL;
899 node->vc_prev = NULL;
905 link_cache_t *node;
924 node = cache_lookup(hd, rsrc, CACHE_NO_REFRESH);
925 if (node != NULL) {
931 node->vc_state &= ~CACHE_NODE_STALE;
933 assert(node->vc_linkid == portid);
938 node->vc_aggr = aggr;
944 node = calloc(1, sizeof (link_cache_t));
945 if (node == NULL) {
952 node->vc_resource = rsrc;
953 node->vc_aggr = aggr;
954 node->vc_linkid = portid;
955 node->vc_state |= CACHE_NODE_NEW;
958 cache_insert(node);
1069 link_cache_t *node, *next;
1082 node = cache_head.vc_next;
1083 for (; node != &cache_tail; node = node->vc_next)
1084 node->vc_state |= CACHE_NODE_STALE;
1093 for (node = cache_head.vc_next; node != &cache_tail; node = next) {
1095 next = node->vc_next;
1096 if (node->vc_state & CACHE_NODE_STALE) {
1097 (void) rcm_unregister_interest(hd, node->vc_resource,
1100 "AGGR: unregistered %s\n", node->vc_resource);
1101 cache_remove(node);
1102 node_free(node);
1106 if (!(node->vc_state & CACHE_NODE_NEW))
1109 if (rcm_register_interest(hd, node->vc_resource, 0,
1114 node->vc_resource);
1118 node->vc_resource);
1120 node->vc_state &= ~CACHE_NODE_NEW;
1193 aggr_consumer_offline(rcm_handle_t *hd, link_cache_t *node, char **errorp,
1200 node->vc_resource);
1203 RCM_LINK_PREFIX, node->vc_aggr->da_aggrid);
1215 node->vc_state |= CACHE_AGGR_CONSUMER_OFFLINED;
1226 aggr_consumer_online(rcm_handle_t *hd, link_cache_t *node, char **errorp,
1233 node->vc_resource);
1235 if (!(node->vc_state & CACHE_AGGR_CONSUMER_OFFLINED)) {
1237 "AGGR: no consumers offlined (%s)\n", node->vc_resource);
1242 RCM_LINK_PREFIX, node->vc_aggr->da_aggrid);
1251 node->vc_state &= ~CACHE_AGGR_CONSUMER_OFFLINED;
1263 link_cache_t *node;
1274 if ((node = cache_lookup(hd, rsrc, CACHE_REFRESH)) == NULL) {
1289 aggr = node->vc_aggr;
1290 is_only_port = (aggr->da_lastport == node->vc_linkid);
1316 RCM_RESOURCE_LINK_NEW, node->vc_resource);
1334 link_cache_t *node;
1346 if ((node = cache_lookup(hd, rsrc, CACHE_NO_REFRESH)) != NULL)
1347 (void) aggr_offline_port(node, CACHE_NODE_STALE);
1438 link_cache_t *node;
1450 if (((node = cache_lookup(hd, rsrc, CACHE_REFRESH)) != NULL) &&
1451 (!(node->vc_state & CACHE_NODE_OFFLINED))) {