code: def _teardown_redundancy_router_gw_connectivity(self, context, router,
                                                      router_db,
                                                      plugging_driver):
          
          if not router[ha.ENABLED]:
              # No HA currently enabled so we're done
              return
          e_context = context.elevated()
          # since gateway is about to change the ha group for the current gateway
          # is removed, a new one will be created later
          self._delete_ha_group(e_context, router_db.gw_port_id)
          # teardown connectivity for the gw ports on the redundancy routers
          # and remove those ports as new ones will be created later
          rr_ids = []
          for r_b_db in router_db.redundancy_bindings:
              if plugging_driver is not None:
                  plugging_driver.teardown_logical_port_connectivity(
                      e_context, r_b_db.redundancy_router.gw_port,
                      r_b_db.redundancy_router.hosting_info.hosting_device_id)
              self._update_router_no_notify(
                  e_context, r_b_db.redundancy_router_id,
                  {'router': {EXTERNAL_GW_INFO: None, ha.ENABLED: False}})
              rr_ids.append(r_b_db.redundancy_router_id)
          self.notify_routers_updated(e_context, rr_ids)
docs: To be called in update_router() if the router gateway is to change
          BEFORE router has been updated in DB .