def METHOD_NAME(self):
    super().METHOD_NAME()
    if self.bgp:
        self._check_conf_types(self.bgp, self.bgp_defaults_types)
        self.bgp = self._set_unknown_conf(self.bgp, self.bgp_defaults_types)
        if not self.bgp_connect_mode():
            self.bgp["connect_mode"] = "passive"
        for field in self.ipaddress_fields:
            if field in self.bgp:
                self.bgp[field] = frozenset(
                    [self._check_ip_str(ip_str) for ip_str in self.bgp[field]]
                )
        for accessor_val, required_field in (
            (self.bgp_ipvs(), "server_addresses"),
            (self.bgp_as(), "as"),
            (self.bgp_port(), "port"),
            (self.bgp_connect_mode(), "connect_mode"),
            (self.bgp_routerid(), "routerid"),
            (self.bgp_neighbor_addresses(), "neighbor_addresses"),
            (self.bgp_neighbor_as(), "neighbor_as"),
        ):
            test_config_condition(
                not accessor_val, "BGP %s must be specified" % required_field
            )
        test_config_condition(
            self.bgp_connect_mode() != "passive", "BGP connect_mode must be passive"
        )
        for ipv in self.bgp_ipvs():
            test_config_condition(
                len(self.bgp_server_addresses_by_ipv(ipv)) != 1,
                "Only one BGP server address per IP version supported",
            )
        if not self.bgp_vlan():
            test_config_condition(
                len(self.vlans) != 1,
                "If routing more than one VLAN, must specify BGP VLAN",
            )
            self.set_bgp_vlan(self.vlans[0])
    else:
        test_config_condition(
            not self.vlans,
            "A router must have least one VLAN specified at top level",
        )