class DefaultFiveTuple implements FiveTuple {

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj instanceof DefaultFiveTuple) {
            final DefaultFiveTuple other = (DefaultFiveTuple) obj;
            return Objects.equals(this.protocol, other.protocol) &&
                    Objects.equals(this.ipSrc, other.ipSrc) &&
                    Objects.equals(this.ipDst, other.ipDst) &&
                    Objects.equals(this.portSrc, other.portSrc) &&
                    Objects.equals(this.portDst, other.portDst);
        }
        return false;
    }

    private  DefaultFiveTuple(byte protocol, IpAddress ipSrc, IpAddress ipDst, PortNumber portSrc, PortNumber portDst,
                             TenantId tenantId, MacAddress macSrc, MacAddress macDst);

}