private ArpResolverMetadata resetFlowToRemove(
      final Ipv4Address gatewayIp, ArpResolverMetadata gatewayArpMetadata) {
    checkNotNull(gatewayIp);

    // If gatewayArpMetadata was not provided, look it up
    if (gatewayArpMetadata == null) {
      gatewayArpMetadata = gatewayToArpMetadataMap.get(gatewayIp);
    }
    if (gatewayArpMetadata != null && gatewayArpMetadata.getFlowToRemove() != null) {
      LOG.debug(
          "Flow to route ARP Reply to Controller from {} being removed from node {}",
          gatewayIp,
          gatewayArpMetadata.getFlowToRemove().getNode());
      flowService.removeFlow(gatewayArpMetadata.getFlowToRemove());
      gatewayArpMetadata.setFlowToRemove(null);
    }
    return gatewayArpMetadata;
  }