class Layer3VniConfig extends VniConfig implements Serializable, Comparable<Layer3VniConfig> {

  @Override
  public boolean equals(@Nullable Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof Layer3VniConfig)) {
      return false;
    }
    Layer3VniConfig vniConfig = (Layer3VniConfig) o;
    return _vni == vniConfig._vni
        && Objects.equals(_vrf, vniConfig._vrf)
        && Objects.equals(_rd, vniConfig._rd)
        && Objects.equals(_routeTarget, vniConfig._routeTarget)
        && Objects.equals(_importRouteTarget, vniConfig._importRouteTarget)
        && _advertiseV4Unicast == vniConfig._advertiseV4Unicast;
  }

  private  Layer3VniConfig(
      int vni,
      String vrf,
      RouteDistinguisher rd,
      ExtendedCommunity routeTarget,
      String importRouteTarget,
      boolean advertiseV4Unicast);

}