Lines Matching refs:pg

46 static void phyint_insert(struct phyint *pi, struct phyint_group *pg);
58 static void target_flush_hosts(struct phyint_group *pg);
65 static int phyint_state_event(struct phyint_group *pg, struct phyint *pi);
66 static int phyint_group_state_event(struct phyint_group *pg);
67 static int phyint_group_change_event(struct phyint_group *pg, ipmp_group_op_t);
68 static int phyint_group_member_event(struct phyint_group *pg, struct phyint *pi,
296 struct phyint_group *pg; in phyint_group_lookup() local
301 for (pg = phyint_groups; pg != NULL; pg = pg->pg_next) { in phyint_group_lookup()
302 if (strncmp(pg->pg_name, pg_name, sizeof (pg->pg_name)) == 0) in phyint_group_lookup()
305 return (pg); in phyint_group_lookup()
313 phyint_insert(struct phyint *pi, struct phyint_group *pg) in phyint_insert() argument
316 logdebug("phyint_insert(%s '%s')\n", pi->pi_name, pg->pg_name); in phyint_insert()
331 pi->pi_group = pg; in phyint_insert()
333 pi->pi_pgnext = pg->pg_phyint; in phyint_insert()
336 pg->pg_phyint = pi; in phyint_insert()
339 phyint_group_refresh_state(pg); in phyint_insert()
341 pg->pg_sig++; in phyint_insert()
342 (void) phyint_group_member_event(pg, pi, IPMP_IF_ADD); in phyint_insert()
370 phyint_create(char *pi_name, struct phyint_group *pg, uint_t ifindex, in phyint_create() argument
410 phyint_insert(pi, pg); in phyint_create()
489 phyint_group_insert(struct phyint_group *pg) in phyint_group_insert() argument
491 pg->pg_next = phyint_groups; in phyint_group_insert()
492 pg->pg_prev = NULL; in phyint_group_insert()
494 phyint_groups->pg_prev = pg; in phyint_group_insert()
495 phyint_groups = pg; in phyint_group_insert()
498 (void) phyint_group_change_event(pg, IPMP_GROUP_ADD); in phyint_group_insert()
507 struct phyint_group *pg; in phyint_group_create() local
512 pg = calloc(1, sizeof (struct phyint_group)); in phyint_group_create()
513 if (pg == NULL) { in phyint_group_create()
518 (void) strlcpy(pg->pg_name, name, sizeof (pg->pg_name)); in phyint_group_create()
519 pg->pg_sig = gensig(); in phyint_group_create()
520 pg->pg_fdt = user_failure_detection_time; in phyint_group_create()
521 pg->pg_probeint = user_probe_interval; in phyint_group_create()
522 pg->pg_in_use = _B_TRUE; in phyint_group_create()
529 pg->pg_state = (name[0] == '\0' ? PG_OK : PG_FAILED); in phyint_group_create()
531 return (pg); in phyint_group_create()
538 phyint_group_chstate(struct phyint_group *pg, enum pg_state state) in phyint_group_chstate() argument
540 assert(pg != phyint_anongroup); in phyint_group_chstate()
549 if (pg->pg_state == state) in phyint_group_chstate()
552 pg->pg_state = state; in phyint_group_chstate()
570 target_flush_hosts(pg); in phyint_group_chstate()
583 pg->pg_sig++; in phyint_group_chstate()
584 (void) phyint_group_state_event(pg); in phyint_group_chstate()
606 struct phyint_group *pg; in phyint_inst_init_from_k() local
611 pg = NULL; in phyint_inst_init_from_k()
699 if ((pg = phyint_group_lookup(pg_name)) == NULL) { in phyint_inst_init_from_k()
700 if ((pg = phyint_group_create(pg_name)) == NULL) { in phyint_inst_init_from_k()
705 phyint_group_insert(pg); in phyint_inst_init_from_k()
713 pi = phyint_create(pi_name, pg, ifindex, flags); in phyint_inst_init_from_k()
819 struct phyint_group *pg; in phyint_inst_sockinit() local
841 pg = pii->pii_phyint->pi_group; in phyint_inst_sockinit()
842 if (pg == phyint_anongroup && !track_all_phyints) { in phyint_inst_sockinit()
1098 phyint_group_delete(struct phyint_group *pg) in phyint_group_delete() argument
1103 if (pg == phyint_anongroup) in phyint_group_delete()
1107 logdebug("phyint_group_delete('%s')\n", pg->pg_name); in phyint_group_delete()
1113 assert(pg->pg_phyint == NULL); in phyint_group_delete()
1114 assert(phyint_groups == pg || pg->pg_prev != NULL); in phyint_group_delete()
1116 if (pg->pg_prev != NULL) in phyint_group_delete()
1117 pg->pg_prev->pg_next = pg->pg_next; in phyint_group_delete()
1119 phyint_groups = pg->pg_next; in phyint_group_delete()
1121 if (pg->pg_next != NULL) in phyint_group_delete()
1122 pg->pg_next->pg_prev = pg->pg_prev; in phyint_group_delete()
1124 pg->pg_next = NULL; in phyint_group_delete()
1125 pg->pg_prev = NULL; in phyint_group_delete()
1128 (void) phyint_group_change_event(pg, IPMP_GROUP_REMOVE); in phyint_group_delete()
1130 addrlist_free(&pg->pg_addrs); in phyint_group_delete()
1131 free(pg); in phyint_group_delete()
1138 phyint_group_refresh_state(struct phyint_group *pg) in phyint_group_refresh_state() argument
1141 enum pg_state origstate = pg->pg_state; in phyint_group_refresh_state()
1148 if (pg == phyint_anongroup) in phyint_group_refresh_state()
1151 for (pi = pg->pg_phyint; pi != NULL; pi = pi->pi_pgnext) { in phyint_group_refresh_state()
1166 phyint_group_chstate(pg, state); in phyint_group_refresh_state()
1180 if (state != PG_FAILED && pg->pg_failmsg_printed) { in phyint_group_refresh_state()
1183 "usable\n", usablepi->pi_name, pg->pg_name); in phyint_group_refresh_state()
1184 pg->pg_failmsg_printed = _B_FALSE; in phyint_group_refresh_state()
1187 pg->pg_name); in phyint_group_refresh_state()
1188 pg->pg_failmsg_printed = _B_TRUE; in phyint_group_refresh_state()
1331 struct phyint_group *pg = pi->pi_group; in phyint_delete() local
1342 assert(pg->pg_phyint == pi || pi->pi_pgprev != NULL); in phyint_delete()
1348 pg->pg_sig++; in phyint_delete()
1349 (void) phyint_group_member_event(pg, pi, IPMP_IF_REMOVE); in phyint_delete()
1353 pg->pg_phyint = pi->pi_pgnext; in phyint_delete()
1363 phyint_group_refresh_state(pg); in phyint_delete()
1392 if (pg != phyint_anongroup) { in phyint_delete()
1394 for (pi2 = pg->pg_phyint; pi2 != NULL; pi2 = pi2->pi_pgnext) { in phyint_delete()
1421 struct phyint_group *pg = pi->pi_group; in phyint_offline() local
1428 if (pg != phyint_anongroup) { in phyint_offline()
1429 for (pi2 = pg->pg_phyint; pi2 != NULL; pi2 = pi2->pi_pgnext) { in phyint_offline()
1433 (GROUP_FAILED(pg) && pi2->pi_state != PI_OFFLINE)) in phyint_offline()
1466 pg->pg_name); in phyint_offline()
2511 target_flush_hosts(struct phyint_group *pg) in target_flush_hosts() argument
2517 logdebug("target_flush_hosts(%s)\n", pg->pg_name); in target_flush_hosts()
2519 for (pi = pg->pg_phyint; pi != NULL; pi = pi->pi_pgnext) { in target_flush_hosts()
2869 groupstate(struct phyint_group *pg) in groupstate() argument
2871 switch (pg->pg_state) { in groupstate()
2880 logerr("groupstate: unknown state %d; aborting\n", pg->pg_state); in groupstate()
2992 phyint_group_state_event(struct phyint_group *pg) in phyint_group_state_event() argument
3002 errno = nvlist_add_string(nvl, IPMP_GROUP_NAME, pg->pg_name); in phyint_group_state_event()
3006 errno = nvlist_add_uint64(nvl, IPMP_GROUP_SIGNATURE, pg->pg_sig); in phyint_group_state_event()
3010 errno = nvlist_add_uint32(nvl, IPMP_GROUP_STATE, groupstate(pg)); in phyint_group_state_event()
3026 phyint_group_change_event(struct phyint_group *pg, ipmp_group_op_t op) in phyint_group_change_event() argument
3036 errno = nvlist_add_string(nvl, IPMP_GROUP_NAME, pg->pg_name); in phyint_group_change_event()
3040 errno = nvlist_add_uint64(nvl, IPMP_GROUP_SIGNATURE, pg->pg_sig); in phyint_group_change_event()
3065 phyint_group_member_event(struct phyint_group *pg, struct phyint *pi, in phyint_group_member_event() argument
3076 errno = nvlist_add_string(nvl, IPMP_GROUP_NAME, pg->pg_name); in phyint_group_member_event()
3080 errno = nvlist_add_uint64(nvl, IPMP_GROUP_SIGNATURE, pg->pg_sig); in phyint_group_member_event()
3113 phyint_state_event(struct phyint_group *pg, struct phyint *pi) in phyint_state_event() argument
3123 errno = nvlist_add_string(nvl, IPMP_GROUP_NAME, pg->pg_name); in phyint_state_event()
3127 errno = nvlist_add_uint64(nvl, IPMP_GROUP_SIGNATURE, pg->pg_sig); in phyint_state_event()
3179 struct phyint_group *pg; in getgroupinfo() local
3188 pg = phyint_group_lookup(grname); in getgroupinfo()
3189 if (pg == NULL) in getgroupinfo()
3197 for (pi = pg->pg_phyint; pi != NULL; pi = pi->pi_pgnext) in getgroupinfo()
3201 for (i = 0, pi = pg->pg_phyint; pi != NULL; pi = pi->pi_pgnext, i++) { in getgroupinfo()
3205 fdt = pg->pg_fdt; in getgroupinfo()
3213 if (pg == phyint_anongroup) { in getgroupinfo()
3214 *grinfopp = ipmp_groupinfo_create(pg->pg_name, pg->pg_sig, fdt, in getgroupinfo()
3215 groupstate(pg), nif, ifs, "", "", "", "", 0, NULL); in getgroupinfo()
3237 for (addrp = pg->pg_addrs; addrp != NULL; addrp = addrp->al_next) in getgroupinfo()
3242 for (addrp = pg->pg_addrs; addrp != NULL; addrp = addrp->al_next) { in getgroupinfo()
3260 *grinfopp = ipmp_groupinfo_create(pg->pg_name, pg->pg_sig, fdt, in getgroupinfo()
3261 groupstate(pg), nif, ifs, lifgr.gi_grifname, lifgr.gi_m4ifname, in getgroupinfo()
3340 struct phyint_group *pg; in getgrouplist() local
3348 for (ngroup = 0, pg = phyint_groups; pg != NULL; pg = pg->pg_next) in getgrouplist()
3352 for (i = 0, pg = phyint_groups; pg != NULL; pg = pg->pg_next, i++) { in getgrouplist()
3354 (void) strlcpy(groups[i], pg->pg_name, LIFGRNAMSIZ); in getgrouplist()
3377 struct phyint_group *pg; in getgraddrinfo() local
3379 if ((pg = phyint_group_lookup(grname)) == NULL) in getgraddrinfo()
3387 for (addrp = pg->pg_addrs; addrp != NULL; addrp = addrp->al_next) { in getgraddrinfo()
3406 *adinfopp = ipmp_addrinfo_create(ssp, state, pg->pg_name, binding); in getgraddrinfo()