예제 #1
0
static void
bridge_status(int s)
{
	struct ifbrparam param;
	u_int16_t pri;
	u_int8_t ht, fd, ma;

	if (do_cmd(s, BRDGGPRI, &param, sizeof(param), 0) < 0)
		return;
	pri = param.ifbrp_prio;

	if (do_cmd(s, BRDGGHT, &param, sizeof(param), 0) < 0)
		return;
	ht = param.ifbrp_hellotime;

	if (do_cmd(s, BRDGGFD, &param, sizeof(param), 0) < 0)
		return;
	fd = param.ifbrp_fwddelay;

	if (do_cmd(s, BRDGGMA, &param, 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;

}
예제 #2
0
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, &param, sizeof(param), 0) < 0)
		return;
	csize = param.ifbrp_csize;
	if (do_cmd(s, BRDGGTO, &param, 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;

}