Lines Matching refs:dsmp
445 dhcp_smach_t *dsmp; in ipc_event() local
462 if ((dsmp = lookup_smach_by_event(id)) != NULL) { in ipc_event()
463 ipc_action_finish(dsmp, error); in ipc_event()
508 dsmp = primary_smach(isv6); in ipc_event()
510 dsmp = lookup_smach(ifname, isv6); in ipc_event()
512 if (dsmp != NULL) { in ipc_event()
514 hold_smach(dsmp); in ipc_event()
515 if (!verify_smach(dsmp)) in ipc_event()
516 dsmp = NULL; in ipc_event()
519 if (dsmp == NULL) { in ipc_event()
528 dsmp = info_primary_smach(isv6); in ipc_event()
529 if (dsmp == NULL) in ipc_event()
542 (dsmp = insert_smach(lif, &error)) != NULL) { in ipc_event()
547 error = get_smach_cid(dsmp); in ipc_event()
549 remove_smach(dsmp); in ipc_event()
550 dsmp = NULL; in ipc_event()
552 dsm_created = (dsmp != NULL); in ipc_event()
561 if (dsmp == NULL) { in ipc_event()
573 (error = set_lif_dhcp(dsmp->dsm_lif)) != DHCP_IPC_SUCCESS) { in ipc_event()
575 remove_smach(dsmp); in ipc_event()
580 if ((dsmp->dsm_dflags & DHCP_IF_BOOTP) && in ipc_event()
583 dhcp_ipc_type_to_string(ia.ia_cmd), dsmp->dsm_name); in ipc_event()
594 if (!check_cmd_allowed(dsmp->dsm_state, ia.ia_cmd)) { in ipc_event()
597 dhcp_state_to_string(dsmp->dsm_state), in ipc_event()
598 dhcp_ipc_type_to_string(ia.ia_cmd), dsmp->dsm_name); in ipc_event()
600 ia.ia_cmd == DHCP_START && dsmp->dsm_state != INIT ? in ipc_event()
606 dhcp_state_to_string(dsmp->dsm_state), in ipc_event()
607 dhcp_ipc_type_to_string(ia.ia_cmd), dsmp->dsm_name); in ipc_event()
610 make_primary(dsmp); in ipc_event()
721 if (dsmp->dsm_dflags & DHCP_IF_BUSY) { in ipc_event()
726 if (!ipc_action_start(dsmp, &ia)) { in ipc_event()
728 "failed for %s", dsmp->dsm_name); in ipc_event()
734 iap = &dsmp->dsm_ia; in ipc_event()
740 if (dsmp->dsm_droprelease) in ipc_event()
742 dsmp->dsm_droprelease = B_TRUE; in ipc_event()
751 cancel_smach_timers(dsmp); in ipc_event()
752 (void) script_start(dsmp, isv6 ? EVENT_DROP6 : EVENT_DROP, in ipc_event()
757 (void) dhcp_extending(dsmp); in ipc_event()
765 PKT_LIST *ack = dsmp->dsm_ack; in ipc_event()
786 for (i = 0; i < dsmp->dsm_pillen; i++) { in ipc_event()
787 if (dsmp->dsm_pil[i] == optnum.code) in ipc_event()
790 if (i < dsmp->dsm_pillen) in ipc_event()
926 } else if (ack != dsmp->dsm_orig_ack) { in ipc_event()
932 ack = dsmp->dsm_orig_ack; in ipc_event()
949 dhcp_inform(dsmp); in ipc_event()
954 if (dsmp->dsm_dflags & DHCP_IF_FAILED) in ipc_event()
961 if (dsmp->dsm_droprelease) in ipc_event()
963 dsmp->dsm_droprelease = B_TRUE; in ipc_event()
964 cancel_smach_timers(dsmp); /* see comment in DHCP_DROP above */ in ipc_event()
965 (void) script_start(dsmp, isv6 ? EVENT_RELEASE6 : in ipc_event()
973 deprecate_leases(dsmp); in ipc_event()
981 error = read_hostconf(dsmp->dsm_name, plp, 2, dsmp->dsm_isv6); in ipc_event()
996 dsmp->dsm_orig_ack = oack; in ipc_event()
997 dsmp->dsm_ack = ack; in ipc_event()
998 dhcp_init_reboot(dsmp); in ipc_event()
1008 if (debug_level == 0 && set_start_timer(dsmp)) { in ipc_event()
1012 dhcp_selecting(dsmp); in ipc_event()
1022 status.if_began = monosec_to_time(dsmp->dsm_curstart_monosec); in ipc_event()
1029 dlp = dsmp->dsm_leases; in ipc_event()
1046 status.if_state = dsmp->dsm_state; in ipc_event()
1047 status.if_dflags = dsmp->dsm_dflags; in ipc_event()
1048 status.if_sent = dsmp->dsm_sent; in ipc_event()
1049 status.if_recv = dsmp->dsm_received; in ipc_event()
1050 status.if_bad_offers = dsmp->dsm_bad_offers; in ipc_event()
1052 (void) strlcpy(status.if_name, dsmp->dsm_name, LIFNAMSIZ); in ipc_event()
1257 check_main_lif(dhcp_smach_t *dsmp, const struct ifa_msghdr *ifam, int msglen) in check_main_lif() argument
1259 dhcp_lif_t *lif = dsmp->dsm_lif; in check_main_lif()
1363 dhcp_smach_t *dsmp, *dsmnext; in rtsock_event() local
1388 for (dsmp = lookup_smach_by_uindex(ifindex, NULL, isv6); in rtsock_event()
1389 dsmp != NULL; dsmp = dsmnext) { in rtsock_event()
1399 dsmnext = lookup_smach_by_uindex(ifindex, dsmp, isv6); in rtsock_event()
1400 oldstate = dsmp->dsm_state; in rtsock_event()
1406 if (dsmp->dsm_droprelease) in rtsock_event()
1414 process_link_up_down(dsmp->dsm_lif->lif_pif, &msg.ifm); in rtsock_event()
1427 for (dlp = dsmp->dsm_leases; dlp != NULL; dlp = dlnext) { in rtsock_event()
1436 dsmp->dsm_lif_wait--; in rtsock_event()
1446 if ((isv6 && !check_main_lif(dsmp, &msg.ifam, msglen)) || in rtsock_event()
1447 (!isv6 && !verify_lif(dsmp->dsm_lif))) { in rtsock_event()
1448 finished_smach(dsmp, DHCP_IPC_E_INVIF); in rtsock_event()
1456 if (!lif_finished && dsmp->dsm_lif_down == 0 && in rtsock_event()
1457 (dsmp->dsm_leases != NULL || !lease_removed)) in rtsock_event()
1464 if (dsmp->dsm_lif_wait != 0) { in rtsock_event()
1466 "LIFs waiting on DAD", dsmp->dsm_name, in rtsock_event()
1467 dsmp->dsm_lif_wait); in rtsock_event()
1476 if (dsmp->dsm_lif_down != 0) in rtsock_event()
1477 send_declines(dsmp); in rtsock_event()
1479 if (dsmp->dsm_leases == NULL) { in rtsock_event()
1480 dsmp->dsm_bad_offers++; in rtsock_event()
1488 if (!dsmp->dsm_isv6) { in rtsock_event()
1490 "LIFs left", dsmp->dsm_name); in rtsock_event()
1491 dhcp_restart(dsmp); in rtsock_event()
1500 "on %s in %s state", dsmp->dsm_name, in rtsock_event()
1504 dhcp_bound_complete(dsmp); in rtsock_event()
1506 dhcp_adopt_complete(dsmp); in rtsock_event()