def __init__(self, id_, name, inbound_port, outbound_port, remote_port=None):
        assert type(id_) is str, 'Port id must be a string'
        assert type(name) is str, 'Port name must be a string'
        assert isinstance(inbound_port, Port), 'Inbound port must be a <Port>'
        assert isinstance(outbound_port, Port), 'Outbound port must be a <Port>'
        assert inbound_port.label().type_ == outbound_port.label().type_, 'Port labels must match each other'
        assert not id_.startswith('urn:'), 'URNs are not used in core OpenNSA NML (id: %s)' % id_

        self.id_ = id_
        self.name = name
        self.inbound_port  = inbound_port
        self.outbound_port = outbound_port
        self.remote_port   = remote_port # hack on!
dataset/ETHPy150Open NORDUnet/opennsa/opennsa/topology/nml.py/BidirectionalPort.__init__/original