/illumos-gate/usr/src/cmd/cmd-inet/sbin/dhcpagent/ |
H A D | async.c | 49 async_start(dhcp_smach_t *dsmp, dhcp_ipc_type_t cmd, boolean_t user) argument 51 if (dsmp->dsm_async.as_present) { 54 dsmp->dsm_async.as_cmd = cmd; 55 dsmp->dsm_async.as_user = user; 56 dsmp->dsm_async.as_present = B_TRUE; 71 async_finish(dhcp_smach_t *dsmp) argument 79 if (dsmp->dsm_script_pid != -1) 80 script_stop(dsmp); 81 dsmp->dsm_async.as_present = B_FALSE; 92 async_cancel(dhcp_smach_t *dsmp) argument [all...] |
H A D | select.c | 64 dhcp_smach_t *dsmp = arg; local 66 dsmp->dsm_start_timer = -1; 67 (void) set_smach_state(dsmp, INIT); 68 if (verify_smach(dsmp)) { 69 dhcpmsg(MSG_VERBOSE, "starting DHCP on %s", dsmp->dsm_name); 70 dhcp_selecting(dsmp); 82 set_start_timer(dhcp_smach_t *dsmp) argument 84 if (dsmp->dsm_start_timer != -1) 87 dsmp->dsm_start_timer = iu_schedule_timer_ms(tq, 88 lrand48() % DHCP_SELECT_WAIT, dhcp_start, dsmp); 106 dhcp_selecting(dhcp_smach_t *dsmp) argument 252 stop_selecting(dhcp_smach_t *dsmp, unsigned int n_discovers) argument [all...] |
H A D | states.c | 95 const char *param_name, dhcp_smach_t *dsmp) 117 param_name, dsmp->dsm_name); 139 (dsmp->dsm_isv6 ? ITAB_CAT_V6 : 0), 144 dsmp->dsm_name); 174 dhcp_smach_t *dsmp, *alt_primary; local 178 if ((dsmp = calloc(1, sizeof (*dsmp))) == NULL) { 186 dsmp->dsm_name = lif->lif_name; 187 dsmp->dsm_lif = lif; 188 dsmp 94 parse_param_list(const char *param_list, uint_t *param_cnt, const char *param_name, dhcp_smach_t *dsmp) argument 301 hold_smach(dhcp_smach_t *dsmp) argument 317 free_smach(dhcp_smach_t *dsmp) argument 353 release_smach(dhcp_smach_t *dsmp) argument 383 next_smach(dhcp_smach_t *dsmp, boolean_t isv6) argument 424 dhcp_smach_t *dsmp; local 447 dhcp_smach_t *dsmp; local 487 make_primary(dhcp_smach_t *dsmp) argument 535 dhcp_smach_t *dsmp; local 556 lookup_smach_by_uindex(uint16_t ifindex, dhcp_smach_t *dsmp, boolean_t isv6) argument 605 lookup_smach_by_xid(uint32_t xid, dhcp_smach_t *dsmp, boolean_t isv6) argument 628 dhcp_smach_t *dsmp; local 654 cancel_offer_timer(dhcp_smach_t *dsmp) argument 677 cancel_smach_timers(dhcp_smach_t *dsmp) argument 709 remove_smach(dhcp_smach_t *dsmp) argument 741 finished_smach(dhcp_smach_t *dsmp, int error) argument 775 set_smach_state(dhcp_smach_t *dsmp, DHCPSTATE state) argument 843 get_smach_cid(dhcp_smach_t *dsmp) argument 1156 discard_default_routes(dhcp_smach_t *dsmp) argument 1173 remove_default_routes(dhcp_smach_t *dsmp) argument 1206 reset_smach(dhcp_smach_t *dsmp) argument 1248 refresh_smach(dhcp_smach_t *dsmp) argument 1275 dhcp_smach_t *dsmp; local 1300 dhcp_smach_t *dsmp, *dsmp_next; local 1351 insert_lease(dhcp_smach_t *dsmp) argument 1527 deprecate_leases(dhcp_smach_t *dsmp) argument 1555 verify_smach(dhcp_smach_t *dsmp) argument [all...] |
H A D | inform.c | 56 dhcp_inform(dhcp_smach_t *dsmp) argument 60 if (!set_smach_state(dsmp, INFORM_SENT)) 63 if (dsmp->dsm_isv6) { 64 dpkt = init_pkt(dsmp, DHCPV6_MSG_INFO_REQ); 67 (void) add_pkt_prl(dpkt, dsmp); 68 dsmp->dsm_server = ipv6_all_dhcp_relay_and_servers; 69 (void) send_pkt_v6(dsmp, dpkt, dsmp->dsm_server, 83 dpkt = init_pkt(dsmp, INFORM); 84 IN6_V4MAPPED_TO_INADDR(&dsmp 122 stop_informing(dhcp_smach_t *dsmp, unsigned int n_requests) argument [all...] |
H A D | renew.c | 83 dhcp_smach_t *dsmp = dlp->dl_smach; local 87 dsmp->dsm_name); 91 if (dsmp->dsm_state == RENEWING || dsmp->dsm_state == REBINDING) { 102 t2 = dsmp->dsm_curstart_monosec + dlp->dl_t2.dt_start; 105 monosec() > t2 ? "" : "almost ", dsmp->dsm_name); 115 if (!async_cancel(dsmp) || !async_start(dsmp, DHCP_EXTEND, B_FALSE) || 116 !dhcp_extending(dsmp)) { 123 (void) set_smach_state(dsmp, BOUN 156 dhcp_smach_t *dsmp = dlp->dl_smach; local 255 dhcp_finish_expire(dhcp_smach_t *dsmp, void *arg) argument 334 dhcp_smach_t *dsmp; local 404 dhcp_extending(dhcp_smach_t *dsmp) argument 516 stop_extending(dhcp_smach_t *dsmp, unsigned int n_requests) argument [all...] |
H A D | release.c | 55 send_declines(dhcp_smach_t *dsmp) argument 67 if (dsmp->dsm_isv6) { 68 if ((dpkt = init_pkt(dsmp, DHCPV6_MSG_DECLINE)) == NULL) 71 dsmp->dsm_serverid, dsmp->dsm_serveridlen); 80 if (dsmp->dsm_ack->opts[CD_DHCP_TYPE] == NULL) 83 if ((dpkt = init_pkt(dsmp, DECLINE)) == NULL) 85 IN6_V4MAPPED_TO_IPADDR(&dsmp->dsm_server, serverip); 95 for (dlp = dsmp->dsm_leases; dlp != NULL; dlp = dlpn) { 114 (void) set_smach_state(dsmp, DECLININ 137 dhcp_release(dhcp_smach_t *dsmp, void *arg) argument 227 dhcp_drop(dhcp_smach_t *dsmp, void *arg) argument 261 stop_release_decline(dhcp_smach_t *dsmp, unsigned int n_requests) argument [all...] |
H A D | init_reboot.c | 58 dhcp_init_reboot_v4(dhcp_smach_t *dsmp) argument 70 dpkt = init_pkt(dsmp, REQUEST); 72 dsmp->dsm_ack->pkt->yiaddr.s_addr); 76 htons(dsmp->dsm_lif->lif_pif->pif_max - sizeof (struct udpiphdr))); 80 (void) add_pkt_prl(dpkt, dsmp); 86 if (df_get_bool(dsmp->dsm_name, dsmp->dsm_isv6, DF_REQUEST_HOSTNAME)) { 88 dsmp->dsm_name); 92 if ((dsmp->dsm_reqhost = strdup(reqhost)) != NULL) 94 dsmp 122 dhcp_init_reboot_v6(dhcp_smach_t *dsmp) argument 204 dhcp_init_reboot(dhcp_smach_t *dsmp) argument 235 stop_init_reboot(dhcp_smach_t *dsmp, unsigned int n_requests) argument [all...] |
H A D | request.c | 62 send_v6_request(dhcp_smach_t *dsmp) argument 67 dpkt = init_pkt(dsmp, DHCPV6_MSG_REQUEST); 68 (void) add_pkt_opt(dpkt, DHCPV6_OPT_SERVERID, dsmp->dsm_serverid, 69 dsmp->dsm_serveridlen); 72 d6in.d6in_iaid = htonl(dsmp->dsm_lif->lif_iaid); 80 (void) add_pkt_prl(dpkt, dsmp); 82 (void) send_pkt_v6(dsmp, dpkt, dsmp->dsm_server, stop_requesting, 86 (void) set_smach_state(dsmp, REQUESTING); 100 server_unicast_option(dhcp_smach_t *dsmp, PKT_LIS argument 150 dhcp_smach_t *dsmp = arg; local 360 compute_points_v6(const PKT_LIST *pkt, const dhcp_smach_t *dsmp) argument 532 select_best(dhcp_smach_t *dsmp) argument 606 accept_v4_acknak(dhcp_smach_t *dsmp, PKT_LIST *plp) argument 695 accept_v6_message(dhcp_smach_t *dsmp, PKT_LIST *plp, const char *pname, uchar_t recv_type) argument 982 dhcp_smach_t *dsmp; local 1067 request_failed(dhcp_smach_t *dsmp) argument 1104 dhcp_smach_t *dsmp; local 1166 dhcp_restart(dhcp_smach_t *dsmp) argument 1203 stop_requesting(dhcp_smach_t *dsmp, unsigned int n_requests) argument [all...] |
H A D | script_handler.c | 120 run_script(dhcp_smach_t *dsmp, const char *event, int fd) argument 145 (void) execl(path, name, dsmp->dsm_name, event, NULL); 196 script_init(dhcp_smach_t *dsmp) argument 198 dsmp->dsm_script_pid = -1; 199 dsmp->dsm_script_helper_pid = -1; 200 dsmp->dsm_script_event_id = -1; 201 dsmp->dsm_script_fd = -1; 202 dsmp->dsm_script_callback = NULL; 203 dsmp->dsm_script_event = NULL; 204 dsmp 215 script_cleanup(dhcp_smach_t *dsmp) argument 282 script_start(dhcp_smach_t *dsmp, const char *event, script_callback_t *callback, void *arg, int *status) argument 377 script_stop(dhcp_smach_t *dsmp) argument [all...] |
H A D | ipc_action.c | 68 ipc_action_start(dhcp_smach_t *dsmp, ipc_action_t *iareq) argument 70 struct ipc_action *ia = &dsmp->dsm_ia; 74 dsmp->dsm_name); 78 if (!async_cancel(dsmp)) { 80 "action on %s", dsmp->dsm_name); 91 iareq->ia_request->timeout, ipc_action_timeout, dsmp); 97 dsmp->dsm_name); 101 hold_smach(dsmp); 110 dhcp_ipc_type_to_string(ia->ia_cmd), ia->ia_cmd, dsmp->dsm_name); 112 dsmp 129 ipc_action_finish(dhcp_smach_t *dsmp, int reason) argument 180 dhcp_smach_t *dsmp = arg; local [all...] |
H A D | bound.c | 72 bound_event_cb(dhcp_smach_t *dsmp, void *arg) argument 74 if (dsmp->dsm_ia.ia_fd != -1) 75 ipc_action_finish(dsmp, DHCP_IPC_SUCCESS); 77 async_finish(dsmp); 88 * PKT_LIST *: the ACK/Reply packet, or NULL to use dsmp->dsm_ack 93 dhcp_bound(dhcp_smach_t *dsmp, PKT_LIST *ack) argument 103 if (dsmp->dsm_ack != dsmp->dsm_orig_ack) 104 free_pkt_entry(dsmp->dsm_ack); 105 dsmp 317 dhcp_bound_complete(dhcp_smach_t *dsmp) argument 510 configure_v4_timers(dhcp_smach_t *dsmp) argument 651 configure_v6_leases(dhcp_smach_t *dsmp) argument 954 configure_v4_lease(dhcp_smach_t *dsmp) argument 1167 save_server_id(dhcp_smach_t *dsmp, PKT_LIST *msg) argument [all...] |
H A D | packet.c | 155 init_pkt(dhcp_smach_t *dsmp, uchar_t type) argument 157 dhcp_pkt_t *dpkt = &dsmp->dsm_send_pkt; 158 dhcp_lif_t *lif = dsmp->dsm_lif; 206 if (dsmp->dsm_cidlen > 0 && 207 add_pkt_opt(dpkt, DHCPV6_OPT_CLIENTID, dsmp->dsm_cid, 208 dsmp->dsm_cidlen) == NULL) { 215 dsmp->dsm_neg_hrtime = gethrtime(); 216 dsmp->dsm_newstart_monosec = monosec(); 254 !is_bound_state(dsmp->dsm_state))) 268 if (dsmp 589 add_pkt_prl(dhcp_pkt_t *dpkt, dhcp_smach_t *dsmp) argument 636 dhcp_smach_t *dsmp; local 797 send_pkt_internal(dhcp_smach_t *dsmp) argument 1024 send_pkt(dhcp_smach_t *dsmp, dhcp_pkt_t *dpkt, in_addr_t dest, stop_func_t *stop) argument 1080 send_pkt_v6(dhcp_smach_t *dsmp, dhcp_pkt_t *dpkt, in6_addr_t dest, stop_func_t *stop, uint_t irt, uint_t mrt) argument 1135 dhcp_smach_t *dsmp = arg; local 1175 stop_pkt_retransmission(dhcp_smach_t *dsmp) argument 1196 retransmit_now(dhcp_smach_t *dsmp) argument 1413 pkt_smach_enqueue(dhcp_smach_t *dsmp, PKT_LIST *plp) argument 1435 next_retransmission(dhcp_smach_t *dsmp, boolean_t first_send, boolean_t positive_only) argument [all...] |
H A D | agent.c | 445 dhcp_smach_t *dsmp; local 462 if ((dsmp = lookup_smach_by_event(id)) != NULL) { 463 ipc_action_finish(dsmp, error); 508 dsmp = primary_smach(isv6); 510 dsmp = lookup_smach(ifname, isv6); 512 if (dsmp != NULL) { 514 hold_smach(dsmp); 515 if (!verify_smach(dsmp)) 516 dsmp = NULL; 519 if (dsmp 1257 check_main_lif(dhcp_smach_t *dsmp, const struct ifa_msghdr *ifam, int msglen) argument 1363 dhcp_smach_t *dsmp, *dsmnext; local [all...] |
H A D | adopt.c | 76 dhcp_smach_t *dsmp = NULL; local 130 if ((dsmp = insert_smach(lif, &retval)) == NULL) { 144 if (!get_prom_prop("chosen", "client-id", &dsmp->dsm_cid, 152 dsmp->dsm_name); 154 } else if (dsmp->dsm_hwtype == ARPHRD_IB && dsmp->dsm_cid == NULL) { 162 dsmp->dsm_name); 166 dsmp->dsm_cidlen = client_id_len; 171 if (!set_smach_state(dsmp, ADOPTING)) 173 dsmp 206 dhcp_adopt_complete(dhcp_smach_t *dsmp) argument [all...] |
H A D | util.c | 180 print_server_msg(dhcp_smach_t *dsmp, const char *msg, uint_t msglen) argument 184 dsmp->dsm_name, msglen, msg); 688 write_lease_to_hostconf(dhcp_smach_t *dsmp) argument 693 hcfile = ifname_to_hostconf(dsmp->dsm_name, dsmp->dsm_isv6); 694 plp[0] = dsmp->dsm_ack; 695 plp[1] = dsmp->dsm_orig_ack; 696 if (write_hostconf(dsmp->dsm_name, plp, 2, 697 monosec_to_time(dsmp->dsm_curstart_monosec), 698 dsmp [all...] |
H A D | interface.c | 365 dhcp_smach_t *dsmp; local 371 for (dsmp = lif->lif_smachs; dsmp != NULL; 372 dsmp = dsmp->dsm_next) { 374 refresh_smach(dsmp); 376 remove_default_routes(dsmp); 1646 expired_lif_state(dhcp_smach_t *dsmp) argument 1655 for (dlp = dsmp->dsm_leases; dlp != NULL; dlp = dlp->dl_next) { 1682 find_expired_lif(dhcp_smach_t *dsmp) argument [all...] |