static void bridge_status(int s) { struct ifbrparam param; u_int16_t pri; u_int8_t ht, fd, ma; if (do_cmd(s, BRDGGPRI, ¶m, sizeof(param), 0) < 0) return; pri = param.ifbrp_prio; if (do_cmd(s, BRDGGHT, ¶m, sizeof(param), 0) < 0) return; ht = param.ifbrp_hellotime; if (do_cmd(s, BRDGGFD, ¶m, sizeof(param), 0) < 0) return; fd = param.ifbrp_fwddelay; if (do_cmd(s, BRDGGMA, ¶m, sizeof(param), 0) < 0) return; ma = param.ifbrp_maxage; printf("\tpriority %u hellotime %u fwddelay %u maxage %u\n", pri, ht, fd, ma); bridge_interfaces(s, "\tmember: "); return; }
static void bridge_status(int s) { struct ifbropreq ifbp; struct ifbrparam param; u_int16_t pri; u_int8_t ht, fd, ma, hc, pro; u_int8_t lladdr[ETHER_ADDR_LEN]; u_int16_t bprio; u_int32_t csize, ctime; if (do_cmd(s, BRDGGCACHE, ¶m, sizeof(param), 0) < 0) return; csize = param.ifbrp_csize; if (do_cmd(s, BRDGGTO, ¶m, sizeof(param), 0) < 0) return; ctime = param.ifbrp_ctime; if (do_cmd(s, BRDGPARAM, &ifbp, sizeof(ifbp), 0) < 0) return; pri = ifbp.ifbop_priority; pro = ifbp.ifbop_protocol; ht = ifbp.ifbop_hellotime; fd = ifbp.ifbop_fwddelay; hc = ifbp.ifbop_holdcount; ma = ifbp.ifbop_maxage; PV2ID(ifbp.ifbop_bridgeid, bprio, lladdr); printf("\tid %s priority %u hellotime %u fwddelay %u\n", ether_ntoa((struct ether_addr *)lladdr), pri, ht, fd); printf("\tmaxage %u holdcnt %u proto %s maxaddr %u timeout %u\n", ma, hc, stpproto[pro], csize, ctime); PV2ID(ifbp.ifbop_designated_root, bprio, lladdr); printf("\troot id %s priority %d ifcost %u port %u\n", ether_ntoa((struct ether_addr *)lladdr), bprio, ifbp.ifbop_root_path_cost, ifbp.ifbop_root_port & 0xfff); bridge_interfaces(s, "\tmember: "); return; }