Lines Matching refs:port

128 	struct portdata *port;  in find_by_linkid()  local
131 port = allports[i]; in find_by_linkid()
132 if (port->linkid == linkid) in find_by_linkid()
133 return (port); in find_by_linkid()
142 struct portdata *port; in set_vlan() local
155 port = find_by_linkid(vinfo.dv_linkid); in set_vlan()
156 if (port == NULL || !port->kern_added) in set_vlan()
159 bve.bve_linkid = port->linkid; in set_vlan()
164 vinfo.dv_vid, port->linkid); in set_vlan()
180 struct portdata *port; in update_port() local
221 if ((port = calloc(1, sizeof (*port))) == NULL) { in update_port()
226 allports[posn] = port; in update_port()
227 port->vlan_id = vlan_id; in update_port()
228 port->linkid = linkid; in update_port()
229 port->port_index = port_index; in update_port()
230 port->phys_status = B_TRUE; in update_port()
231 port->admin_status = B_TRUE; in update_port()
232 port->state = BLS_BLOCKLISTEN; in update_port()
236 port = allports[posn]; in update_port()
242 if (port->name != NULL && strcmp(portname, port->name) != 0) { in update_port()
243 if (port->dlpi != NULL) in update_port()
244 dlpi_close(port->dlpi); in update_port()
245 port->dlpi = NULL; in update_port()
246 port->name = NULL; in update_port()
256 if (!port->kern_added) { in update_port()
265 port->kern_added = B_TRUE; in update_port()
268 port->referenced = B_TRUE; in update_port()
274 port->admin_status = propval; in update_port()
288 if (port->dlpi == NULL) { in update_port()
289 if (!port_dlpi_open(portname, port, class)) in update_port()
291 fds->fd = dlpi_fd(port->dlpi); in update_port()
295 if (rstp_add_port(port)) in update_port()
299 if (port->dlpi != NULL) { in update_port()
300 dlpi_close(port->dlpi); in update_port()
301 port->dlpi = NULL; in update_port()
302 port->name = NULL; in update_port()
306 if (port->kern_added) { in update_port()
307 if (strioctl(control_fd, BRIOC_REMLINK, &port->linkid, in update_port()
308 sizeof (port->linkid)) == -1) in update_port()
312 port->kern_added = B_FALSE; in update_port()
315 free(port); in update_port()
451 struct portdata *port; in handle_control() local
457 if ((port = find_by_linkid(bc.bc_linkid)) == NULL) in handle_control()
459 if (port->sdu_failed == bc.bc_failed) in handle_control()
461 port->sdu_failed = bc.bc_failed; in handle_control()
462 if (!port->phys_status || !port->admin_status || in handle_control()
465 if (port->admin_non_stp) { in handle_control()
468 bss.bss_linkid = port->linkid; in handle_control()
469 bss.bss_state = !port->sdu_failed && !port->bpdu_protect ? in handle_control()
474 port->name); in handle_control()
477 if ((rc = STP_IN_enable_port(port->port_index, !bc.bc_failed)) != 0) in handle_control()
479 port->name, bc.bc_failed ? "disable" : "enable", in handle_control()
484 receive_packet(struct portdata *port) in receive_packet() argument
493 rc = dlpi_recv(port->dlpi, NULL, NULL, buffer, &buflen, 1, NULL); in receive_packet()
496 syslog(LOG_ERR, "receive failure on %s: %s", port->name, in receive_packet()
506 if (!port->admin_status || protect != DLADM_BRIDGE_PROT_STP) { in receive_packet()
510 port->name); in receive_packet()
528 if (port->admin_non_stp && !port->bpdu_protect) { in receive_packet()
534 "forwarding disabled", port->name, sender); in receive_packet()
535 port->bpdu_protect = B_TRUE; in receive_packet()
536 bss.bss_linkid = port->linkid; in receive_packet()
541 "%s: %m", port->name); in receive_packet()
549 sender, port->name, buflen); in receive_packet()
551 rc = STP_IN_rx_bpdu(port->vlan_id, port->port_index, in receive_packet()
559 port->name, sender, STP_IN_get_error_explanation(rc)); in receive_packet()
564 get_dladm_speed(struct portdata *port) in get_dladm_speed() argument
569 status = dladm_get_single_mac_stat(dlhandle, port->linkid, "ifspeed", in get_dladm_speed()
572 port->speed = ifspeed / 1000000; in get_dladm_speed()
574 port->speed = 10UL; in get_dladm_speed()
578 enable_forwarding(struct portdata *port) in enable_forwarding() argument
582 bss.bss_linkid = port->linkid; in enable_forwarding()
585 syslog(LOG_ERR, "cannot set STP state on %s: %m", port->name); in enable_forwarding()