Lines Matching +full:bridge +full:- +full:enable

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
28 * Bridge MIB implementation for SNMPd.
29 * Bridge OS specific ioctls.
63 int sock = -1;
70 return (-1); in bridge_ioctl_init()
101 /* Not present - load it. */ in bridge_kmod_load()
104 return (-1); in bridge_kmod_load()
111 * Bridge interfaces.
115 * Convert the kernel uint64_t value for a bridge id
126 b_id[SNMP_BRIDGE_ID_LEN - i - 1] = *o; in snmp_uint64_to_bridgeid()
130 * Fetch the bridge configuration parameters from the kernel excluding
139 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_get_conf_param()
143 /* Bridge priority. */ in bridge_get_conf_param()
146 syslog(LOG_ERR, "update bridge: ioctl(BRDGGPRI) failed: %s", in bridge_get_conf_param()
148 return (-1); in bridge_get_conf_param()
151 bif->priority = b_param.ifbrp_prio; in bridge_get_conf_param()
156 syslog(LOG_ERR, "update bridge: ioctl(BRDGGMA) failed: %s", in bridge_get_conf_param()
158 return (-1); in bridge_get_conf_param()
161 /* Centi-seconds. */ in bridge_get_conf_param()
162 bif->bridge_max_age = 100 * b_param.ifbrp_maxage; in bridge_get_conf_param()
167 syslog(LOG_ERR, "update bridge: ioctl(BRDGGHT) failed: %s", in bridge_get_conf_param()
169 return (-1); in bridge_get_conf_param()
171 bif->bridge_hello_time = 100 * b_param.ifbrp_hellotime; in bridge_get_conf_param()
176 syslog(LOG_ERR, "update bridge: ioctl(BRDGGFD) failed: %s", in bridge_get_conf_param()
178 return (-1); in bridge_get_conf_param()
180 bif->bridge_fwd_delay = 100 * b_param.ifbrp_fwddelay; in bridge_get_conf_param()
185 syslog(LOG_ERR, "update bridge: ioctl(BRDGGRTE) failed: %s", in bridge_get_conf_param()
187 return (-1); in bridge_get_conf_param()
189 bif->lrnt_drops = b_param.ifbrp_cexceeded; in bridge_get_conf_param()
194 syslog(LOG_ERR, "update bridge: ioctl(BRDGGTO) failed: %s", in bridge_get_conf_param()
196 return (-1); in bridge_get_conf_param()
198 bif->age_time = b_param.ifbrp_ctime; in bridge_get_conf_param()
203 syslog(LOG_ERR, "update bridge: ioctl(BRDGGCACHE) " in bridge_get_conf_param()
205 return (-1); in bridge_get_conf_param()
207 bif->max_addrs = b_param.ifbrp_csize; in bridge_get_conf_param()
213 * Fetch the current bridge STP operational parameters.
214 * Returns: -1 - on error;
215 * 0 - old TC time and Root Port values are same;
216 * 1 - topologyChange notification should be sent;
217 * 2 - newRoot notification should be sent.
226 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_get_op_param()
232 syslog(LOG_ERR, "update bridge: ioctl(BRDGPARAM) failed: %s", in bridge_get_op_param()
234 return (-1); in bridge_get_op_param()
237 bif->max_age = 100 * b_req.ifbop_maxage; in bridge_get_op_param()
238 bif->hello_time = 100 * b_req.ifbop_hellotime; in bridge_get_op_param()
239 bif->fwd_delay = 100 * b_req.ifbop_fwddelay; in bridge_get_op_param()
240 bif->stp_version = b_req.ifbop_protocol; in bridge_get_op_param()
241 bif->tx_hold_count = b_req.ifbop_holdcount; in bridge_get_op_param()
244 bif->root_port != b_req.ifbop_root_port) in bridge_get_op_param()
249 bif->root_port = b_req.ifbop_root_port; in bridge_get_op_param()
250 bif->root_cost = b_req.ifbop_root_path_cost; in bridge_get_op_param()
252 bif->design_root); in bridge_get_op_param()
254 if (bif->last_tc_time.tv_sec != b_req.ifbop_last_tc_time.tv_sec) { in bridge_get_op_param()
255 bif->top_changes++; in bridge_get_op_param()
256 bif->last_tc_time.tv_sec = b_req.ifbop_last_tc_time.tv_sec; in bridge_get_op_param()
257 bif->last_tc_time.tv_usec = b_req.ifbop_last_tc_time.tv_usec; in bridge_get_op_param()
274 return (-1); in bridge_getinfo_bif()
285 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_set_priority()
292 syslog(LOG_ERR, "set bridge param: ioctl(BRDGSPRI) " in bridge_set_priority()
294 return (-1); in bridge_set_priority()
298 * Re-fetching the data from the driver after that might be a good in bridge_set_priority()
299 * idea, since changing our bridge's priority should invoke in bridge_set_priority()
302 bif->priority = priority; in bridge_set_priority()
308 * Timeout ::= TEXTUAL-CONVENTION.
312 * The conversion to 1/256 of a second happens in the kernel -
328 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_set_maxage()
335 syslog(LOG_ERR, "set bridge param: ioctl(BRDGSMA) " in bridge_set_maxage()
337 return (-1); in bridge_set_maxage()
340 bif->bridge_max_age = max_age; in bridge_set_maxage()
350 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_set_hello_time()
357 syslog(LOG_ERR, "set bridge param: ioctl(BRDGSHT) " in bridge_set_hello_time()
359 return (-1); in bridge_set_hello_time()
362 bif->bridge_hello_time = b_param.ifbrp_hellotime; in bridge_set_hello_time()
372 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_set_forward_delay()
379 syslog(LOG_ERR, "set bridge param: ioctl(BRDGSFD) " in bridge_set_forward_delay()
381 return (-1); in bridge_set_forward_delay()
384 bif->bridge_fwd_delay = b_param.ifbrp_fwddelay; in bridge_set_forward_delay()
394 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_set_aging_time()
401 syslog(LOG_ERR, "set bridge param: ioctl(BRDGSTO) " in bridge_set_aging_time()
403 return (-1); in bridge_set_aging_time()
406 bif->age_time = age_time; in bridge_set_aging_time()
416 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_set_max_cache()
423 syslog(LOG_ERR, "set bridge param: ioctl(BRDGSCACHE) " in bridge_set_max_cache()
425 return (-1); in bridge_set_max_cache()
428 bif->max_addrs = b_param.ifbrp_csize; in bridge_set_max_cache()
439 return (-1); in bridge_set_tx_hold_count()
441 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_set_tx_hold_count()
448 syslog(LOG_ERR, "set bridge param: ioctl(BRDGSTXHC) " in bridge_set_tx_hold_count()
450 return (-1); in bridge_set_tx_hold_count()
453 bif->tx_hold_count = b_param.ifbrp_txhc; in bridge_set_tx_hold_count()
463 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_set_stp_version()
470 syslog(LOG_ERR, "set bridge param: ioctl(BRDGSPROTO) " in bridge_set_stp_version()
472 return (-1); in bridge_set_stp_version()
475 bif->stp_version = b_param.ifbrp_proto; in bridge_set_stp_version()
480 * Set the bridge interface status to up/down.
491 syslog(LOG_ERR, "set bridge up: ioctl(SIOCGIFFLAGS) " in bridge_set_if_up()
493 return (-1); in bridge_set_if_up()
505 syslog(LOG_ERR, "set bridge up: ioctl(SIOCSIFFLAGS) " in bridge_set_if_up()
507 return (-1); in bridge_set_if_up()
523 syslog(LOG_ERR, "create bridge: ioctl(SIOCIFCREATE) " in bridge_create()
525 return (-1); in bridge_create()
532 syslog(LOG_ERR, "create bridge: strdup() failed"); in bridge_create()
533 return (-1); in bridge_create()
538 syslog(LOG_ERR, "create bridge: ioctl(SIOCSIFNAME) " in bridge_create()
541 return (-1); in bridge_create()
556 syslog(LOG_ERR, "destroy bridge: ioctl(SIOCIFDESTROY) " in bridge_destroy()
558 return (-1); in bridge_destroy()
565 * Fetch the bridge base MAC address. Return pointer to the
577 syslog(LOG_ERR, "bridge get mac: getifaddrs() failed - %s", in bridge_get_basemac()
582 for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) { in bridge_get_basemac()
583 if (ifa->ifa_addr->sa_family != AF_LINK) in bridge_get_basemac()
589 bcopy(ifa->ifa_addr, &sdl, sizeof(struct sockaddr_dl)); in bridge_get_basemac()
595 len = IFNAMSIZ - 1; in bridge_get_basemac()
612 * Bridge ports.
617 * the corresopnding enumerated type from SNMP Bridge MIB.
640 * Fill in a bridge member information according to data polled from kernel.
645 bp->state = state2snmp_st(k_info->ifbr_state); in bridge_port_getinfo_conf()
646 bp->priority = k_info->ifbr_priority; in bridge_port_getinfo_conf()
658 if (k_info->ifbr_ifsflags & IFBIF_BSTP_ADMCOST) in bridge_port_getinfo_conf()
659 bp->admin_path_cost = k_info->ifbr_path_cost; in bridge_port_getinfo_conf()
661 bp->admin_path_cost = 0; in bridge_port_getinfo_conf()
663 bp->path_cost = k_info->ifbr_path_cost; in bridge_port_getinfo_conf()
665 if (k_info->ifbr_ifsflags & IFBIF_STP) in bridge_port_getinfo_conf()
666 bp->enable = dot1dStpPortEnable_enabled; in bridge_port_getinfo_conf()
668 bp->enable = dot1dStpPortEnable_disabled; in bridge_port_getinfo_conf()
670 /* Begemot Bridge MIB only. */ in bridge_port_getinfo_conf()
671 if (k_info->ifbr_ifsflags & IFBIF_SPAN) in bridge_port_getinfo_conf()
672 bp->span_enable = begemotBridgeBaseSpanEnabled_enabled; in bridge_port_getinfo_conf()
674 bp->span_enable = begemotBridgeBaseSpanEnabled_disabled; in bridge_port_getinfo_conf()
676 if (k_info->ifbr_ifsflags & IFBIF_PRIVATE) in bridge_port_getinfo_conf()
677 bp->priv_set = TruthValue_true; in bridge_port_getinfo_conf()
679 bp->priv_set = TruthValue_false; in bridge_port_getinfo_conf()
681 if (k_info->ifbr_ifsflags & IFBIF_BSTP_ADMEDGE) in bridge_port_getinfo_conf()
682 bp->admin_edge = TruthValue_true; in bridge_port_getinfo_conf()
684 bp->admin_edge = TruthValue_false; in bridge_port_getinfo_conf()
686 if (k_info->ifbr_ifsflags & IFBIF_BSTP_EDGE) in bridge_port_getinfo_conf()
687 bp->oper_edge = TruthValue_true; in bridge_port_getinfo_conf()
689 bp->oper_edge = TruthValue_false; in bridge_port_getinfo_conf()
691 if (k_info->ifbr_ifsflags & IFBIF_BSTP_AUTOPTP) { in bridge_port_getinfo_conf()
692 bp->admin_ptp = StpPortAdminPointToPointType_auto; in bridge_port_getinfo_conf()
693 if (k_info->ifbr_ifsflags & IFBIF_BSTP_PTP) in bridge_port_getinfo_conf()
694 bp->oper_ptp = TruthValue_true; in bridge_port_getinfo_conf()
696 bp->oper_ptp = TruthValue_false; in bridge_port_getinfo_conf()
697 } else if (k_info->ifbr_ifsflags & IFBIF_BSTP_PTP) { in bridge_port_getinfo_conf()
698 bp->admin_ptp = StpPortAdminPointToPointType_forceTrue; in bridge_port_getinfo_conf()
699 bp->oper_ptp = TruthValue_true; in bridge_port_getinfo_conf()
701 bp->admin_ptp = StpPortAdminPointToPointType_forceFalse; in bridge_port_getinfo_conf()
702 bp->oper_ptp = TruthValue_false; in bridge_port_getinfo_conf()
707 * Fill in a bridge interface STP information according to
713 bp->enable = dot1dStpPortEnable_enabled; in bridge_port_getinfo_opstp()
714 bp->fwd_trans = bp_stp->ifbp_fwd_trans; in bridge_port_getinfo_opstp()
715 bp->design_cost = bp_stp->ifbp_design_cost; in bridge_port_getinfo_opstp()
716 snmp_uint64_to_bridgeid(bp_stp->ifbp_design_root, bp->design_root); in bridge_port_getinfo_opstp()
717 snmp_uint64_to_bridgeid(bp_stp->ifbp_design_bridge, bp->design_bridge); in bridge_port_getinfo_opstp()
718 bcopy(&(bp_stp->ifbp_design_port), &(bp->design_port), in bridge_port_getinfo_opstp()
723 * Clear a bridge interface STP information.
728 if (bp->enable == dot1dStpPortEnable_enabled) { in bridge_port_clearinfo_opstp()
729 bp->design_cost = 0; in bridge_port_clearinfo_opstp()
730 bzero(&(bp->design_root), sizeof(bridge_id)); in bridge_port_clearinfo_opstp()
731 bzero(&(bp->design_bridge), sizeof(bridge_id)); in bridge_port_clearinfo_opstp()
732 bzero(&(bp->design_port), sizeof(port_id)); in bridge_port_clearinfo_opstp()
733 bp->fwd_trans = 0; in bridge_port_clearinfo_opstp()
736 bp->enable = dot1dStpPortEnable_disabled; in bridge_port_clearinfo_opstp()
740 * Set a bridge member priority.
752 strlcpy(b_req.ifbr_ifsname, bp->p_name, sizeof(b_req.ifbr_ifsname)); in bridge_port_set_priority()
759 "failed: %s", bp->p_name, strerror(errno)); in bridge_port_set_priority()
760 return (-1); in bridge_port_set_priority()
763 bp->priority = priority; in bridge_port_set_priority()
768 * Set a bridge member STP-enabled flag.
772 uint32_t enable) in bridge_port_set_stp_enable() argument
777 if (bp->enable == enable) in bridge_port_set_stp_enable()
784 strlcpy(b_req.ifbr_ifsname, bp->p_name, sizeof(b_req.ifbr_ifsname)); in bridge_port_set_stp_enable()
789 "failed: %s", bp->p_name, strerror(errno)); in bridge_port_set_stp_enable()
790 return (-1); in bridge_port_set_stp_enable()
793 if (enable == dot1dStpPortEnable_enabled) in bridge_port_set_stp_enable()
801 "failed: %s", bp->p_name, strerror(errno)); in bridge_port_set_stp_enable()
802 return (-1); in bridge_port_set_stp_enable()
805 bp->enable = enable; in bridge_port_set_stp_enable()
810 * Set a bridge member STP path cost.
821 return (-2); in bridge_port_set_path_cost()
826 strlcpy(b_req.ifbr_ifsname, bp->p_name, sizeof(b_req.ifbr_ifsname)); in bridge_port_set_path_cost()
833 "failed: %s", bp->p_name, strerror(errno)); in bridge_port_set_path_cost()
834 return (-1); in bridge_port_set_path_cost()
837 bp->admin_path_cost = path_cost; in bridge_port_set_path_cost()
852 if (bp->admin_ptp == admin_ptp) in bridge_port_set_admin_ptp()
859 strlcpy(b_req.ifbr_ifsname, bp->p_name, sizeof(b_req.ifbr_ifsname)); in bridge_port_set_admin_ptp()
864 "failed: %s", bp->p_name, strerror(errno)); in bridge_port_set_admin_ptp()
865 return (-1); in bridge_port_set_admin_ptp()
885 "failed: %s", bp->p_name, strerror(errno)); in bridge_port_set_admin_ptp()
886 return (-1); in bridge_port_set_admin_ptp()
889 bp->admin_ptp = admin_ptp; in bridge_port_set_admin_ptp()
898 uint32_t enable) in bridge_port_set_admin_edge() argument
903 if (bp->admin_edge == enable) in bridge_port_set_admin_edge()
910 strlcpy(b_req.ifbr_ifsname, bp->p_name, sizeof(b_req.ifbr_ifsname)); in bridge_port_set_admin_edge()
915 "failed: %s", bp->p_name, strerror(errno)); in bridge_port_set_admin_edge()
916 return (-1); in bridge_port_set_admin_edge()
919 if (enable == TruthValue_true) { in bridge_port_set_admin_edge()
928 "failed: %s", bp->p_name, strerror(errno)); in bridge_port_set_admin_edge()
929 return (-1); in bridge_port_set_admin_edge()
932 bp->admin_edge = enable; in bridge_port_set_admin_edge()
947 if (bp->priv_set == priv_set) in bridge_port_set_private()
954 strlcpy(b_req.ifbr_ifsname, bp->p_name, sizeof(b_req.ifbr_ifsname)); in bridge_port_set_private()
959 "failed: %s", bp->p_name, strerror(errno)); in bridge_port_set_private()
960 return (-1); in bridge_port_set_private()
973 "failed: %s", bp->p_name, strerror(errno)); in bridge_port_set_private()
974 return (-1); in bridge_port_set_private()
977 bp->priv_set = priv_set; in bridge_port_set_private()
984 * Add a bridge member port.
998 strlcpy(b_req.ifbr_ifsname, bp->p_name, sizeof(b_req.ifbr_ifsname)); in bridge_port_addm()
1000 if (bp->span_enable == begemotBridgeBaseSpanEnabled_enabled) in bridge_port_addm()
1006 syslog(LOG_ERR, "%s - add member : ioctl(%s) failed: %s", in bridge_port_addm()
1007 bp->p_name, in bridge_port_addm()
1010 return (-1); in bridge_port_addm()
1017 * Delete a bridge member port.
1031 strlcpy(b_req.ifbr_ifsname, bp->p_name, sizeof(b_req.ifbr_ifsname)); in bridge_port_delm()
1033 if (bp->span_enable == begemotBridgeBaseSpanEnabled_enabled) in bridge_port_delm()
1039 syslog(LOG_ERR, "%s - add member : ioctl(%s) failed: %s", in bridge_port_delm()
1040 bp->p_name, in bridge_port_delm()
1043 return (-1); in bridge_port_delm()
1050 * Fetch the bridge member list from kernel.
1051 * Return -1 on error, or buffer len if successful.
1063 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_port_get_iflist()
1071 syslog(LOG_ERR, "get bridge member list: " in bridge_port_get_iflist()
1075 return (-1); in bridge_port_get_iflist()
1082 syslog(LOG_ERR, "get bridge member list: ioctl " in bridge_port_get_iflist()
1086 return (-1); in bridge_port_get_iflist()
1099 * Fetch the bridge STP member list from kernel.
1100 * Return -1 on error, or buffer len if successful.
1112 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_port_get_ifstplist()
1121 syslog(LOG_ERR, "get bridge STP ports list: " in bridge_port_get_ifstplist()
1125 return (-1); in bridge_port_get_ifstplist()
1132 syslog(LOG_ERR, "get bridge STP ports list: ioctl " in bridge_port_get_ifstplist()
1136 return (-1); in bridge_port_get_ifstplist()
1149 * Locate a bridge if STP params structure in a buffer.
1160 if (bstp->ifbp_portno == port_no) in bridge_port_find_ifstplist()
1168 * Read the initial info for all members of a bridge interface.
1169 * Returns the number of ports, 0 - if none, otherwise
1170 * -1 if some other error occurred.
1183 return (-1); in bridge_getinfo_bif_ports()
1188 if ((m_if = mib_find_if_sys(b_req->ifbr_portno)) != NULL) { in bridge_getinfo_bif_ports()
1191 bp->status = RowStatus_active; in bridge_getinfo_bif_ports()
1196 syslog(LOG_ERR, "bridge member %s not present " in bridge_getinfo_bif_ports()
1197 "in mibII ifTable", b_req->ifbr_ifsname); in bridge_getinfo_bif_ports()
1203 return (-1); in bridge_getinfo_bif_ports()
1207 if ((bs_req = bridge_port_find_ifstplist(bp->port_no, in bridge_getinfo_bif_ports()
1219 * Update the information for the bridge interface members.
1233 return (-1); in bridge_update_memif()
1241 if ((m_if = mib_find_if_sys(b_req->ifbr_portno)) == NULL) { in bridge_update_memif()
1242 syslog(LOG_ERR, "bridge member %s not present " in bridge_update_memif()
1243 "in mibII ifTable", b_req->ifbr_ifsname); in bridge_update_memif()
1247 if ((bp = bridge_port_find(m_if->index, bif)) == NULL && in bridge_update_memif()
1249 bp->status = RowStatus_active; in bridge_update_memif()
1256 bp->flags |= BP_FOUND; in bridge_update_memif()
1265 if ((bp->flags & BP_FOUND) == 0 && in bridge_update_memif()
1266 bp->status == RowStatus_active) in bridge_update_memif()
1269 bp->flags |= ~BP_FOUND; in bridge_update_memif()
1274 return (-1); in bridge_update_memif()
1278 if ((bs_req = bridge_port_find_ifstplist(bp->port_no, in bridge_update_memif()
1285 bif->ports_age = time(NULL); in bridge_update_memif()
1291 * Bridge addresses.
1295 * Update the bridge address info according to the polled data.
1300 tpe->port_no = if_nametoindex(ifba->ifba_ifsname); in bridge_addrs_info_ifaddrlist()
1302 if ((ifba->ifba_flags & IFBAF_TYPEMASK) == IFBAF_STATIC) in bridge_addrs_info_ifaddrlist()
1303 tpe->status = TpFdbStatus_mgmt; in bridge_addrs_info_ifaddrlist()
1305 tpe->status = TpFdbStatus_learned; in bridge_addrs_info_ifaddrlist()
1309 * Read the bridge addresses from kernel.
1310 * Return -1 on error, or buffer len if successful.
1322 strlcpy(ifd.ifd_name, bif->bif_name, IFNAMSIZ); in bridge_addrs_getinfo_ifalist()
1330 syslog(LOG_ERR, "get bridge address list: " in bridge_addrs_getinfo_ifalist()
1334 return (-1); in bridge_addrs_getinfo_ifalist()
1341 syslog(LOG_ERR, "get bridge address list: " in bridge_addrs_getinfo_ifalist()
1345 return (-1); in bridge_addrs_getinfo_ifalist()
1358 * Read the initial info for all addresses on a bridge interface.
1359 * Returns the number of addresses, 0 - if none, otherwise
1360 * -1 if some other error occurred.
1371 return (-1); in bridge_getinfo_bif_addrs()
1376 if ((te = bridge_new_addrs(addr_req->ifba_dst, bif)) != NULL) in bridge_getinfo_bif_addrs()
1385 * Update the addresses for the bridge interface.
1397 return (-1); in bridge_update_addrs()
1405 if ((te = bridge_addrs_find(addr_req->ifba_dst, bif)) == NULL) { in bridge_update_addrs()
1408 if ((te = bridge_new_addrs(addr_req->ifba_dst, bif)) in bridge_update_addrs()
1415 te-> flags |= BA_FOUND; in bridge_update_addrs()
1422 if ((te-> flags & BA_FOUND) == 0) in bridge_update_addrs()
1425 te-> flags &= ~BA_FOUND; in bridge_update_addrs()
1429 bif->addrs_age = time(NULL); in bridge_update_addrs()
1434 * Bridge packet filtering.
1436 const char bridge_sysctl[] = "net.link.bridge.";
1453 return (-1); in bridge_get_pfval()
1455 return (bridge_pf_sysctl[which - 1].val); in bridge_get_pfval()
1466 return (-2); in bridge_do_pfctl()
1479 return (-1); in bridge_do_pfctl()
1482 s_len) == -1) { in bridge_do_pfctl()
1483 syslog(LOG_ERR, "sysctl(%s) failed - %s", mib_oid, in bridge_do_pfctl()
1486 return (-1); in bridge_do_pfctl()