class Layer3Vni implements Vni {

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof Layer3Vni)) {
      return false;
    }
    Layer3Vni layer3Vni = (Layer3Vni) o;
    return _vni == layer3Vni._vni
        && _bumTransportIps.equals(layer3Vni._bumTransportIps)
        && _bumTransportMethod == layer3Vni._bumTransportMethod
        && Objects.equals(_sourceAddress, layer3Vni._sourceAddress)
        && _udpPort.equals(layer3Vni._udpPort)
        && _srcVrf.equals(layer3Vni._srcVrf);
  }

  private  Layer3Vni(
      Set<Ip> bumTransportIps,
      BumTransportMethod bumTransportMethod,
      @Nullable Ip sourceAddress,
      Integer udpPort,
      int vni,
      String srcVrf);

}