static int cmd_dumplist(struct team_handle *th, int argc, char **argv) { char *opt; if (argc == 1) { fprintf(stderr, "List name not specified\n"); usage(); } opt = argv[1]; if (strcmp(opt, "ports") == 0) { struct team_port *port; team_for_each_port(port, th) { uint32_t ifindex = team_get_port_ifindex(port); printf("ifname %s, linkup %d, changed %d, speed %d, " "duplex %d\n", get_port_name(th, ifindex), team_is_port_link_up(port), team_is_port_changed(port), team_get_port_speed(port), team_get_port_duplex(port)); } } else {
static void discovery_local_port_cb(const struct ofp_port *port, void *d_) { struct discovery *d = d_; if (port) { char name[OFP_MAX_PORT_NAME_LEN + 1]; struct netdev *netdev; int retval; /* Check that this was really a change. */ get_port_name(port, name, sizeof name); if (d->dhcp && !strcmp(netdev_get_name(dhclient_get_netdev(d->dhcp)), name)) { return; } /* Destroy current DHCP client. */ dhclient_destroy(d->dhcp); d->dhcp = NULL; /* Bring local network device up. */ retval = netdev_open(name, NETDEV_ETH_TYPE_NONE, &netdev); if (retval) { VLOG_ERR(LOG_MODULE, "Could not open %s device, discovery disabled: %s", name, strerror(retval)); return; } retval = netdev_turn_flags_on(netdev, NETDEV_UP, true); if (retval) { VLOG_ERR(LOG_MODULE, "Could not bring %s device up, discovery disabled: %s", name, strerror(retval)); return; } netdev_close(netdev); /* Initialize DHCP client. */ retval = dhclient_create(name, modify_dhcp_request, validate_dhcp_offer, (void *) d->s, &d->dhcp); if (retval) { VLOG_ERR(LOG_MODULE, "Failed to initialize DHCP client, " "discovery disabled: %s", strerror(retval)); return; } dhclient_set_max_timeout(d->dhcp, 3); dhclient_init(d->dhcp, 0); } else { dhclient_destroy(d->dhcp); d->dhcp = NULL; } }
static int port_change_handler_func(struct team_handle *th, void *arg, team_change_type_mask_t type_mask) { struct team_port *port; printf("------------------\nport change\n\tport list:\n"); team_for_each_port(port, th) { uint32_t ifindex = team_get_port_ifindex(port); printf("\tifname %s, linkup %d, changed %d, speed %d, " "duplex %d\n", get_port_name(th, ifindex), team_is_port_link_up(port), team_is_port_changed(port), team_get_port_speed(port), team_get_port_duplex(port)); }