Commit 5a1edcf6 authored by garciay's avatar garciay
Browse files

Add ASN.1 files for Non IP protocols (FTNTP/FSAP)

parent 87d9638a
Loading
Loading
Loading
Loading

CALMfntp/CALMfntp.asn

0 → 100644
+216 −0
Original line number Diff line number Diff line
--<OSS.PDU>-- 
CALMfntp { iso (1) standard (0) calm-nonip(29281) fntp(2) version1 (1)}  

DEFINITIONS AUTOMATIC TAGS::=BEGIN

IMPORTS

CIstatus, Link-ID, UserPriority FROM CALMllsap {iso(1) standard(0) calm-ll-sap(21218) version1(1)}

ITS-scuId FROM CALMmanagement { iso (1) standard (0) calm-management (24102) local (1) version1 (1)}

NTtimeout FROM CALMfsap { iso (1) standard (0) calm-management (24102) fsap (5) version1 (1)}


FNTPlpp FROM CALMlegacySupport { iso (1) standard (0) calm-nonip(29281) legacy (3) version1 (1)} 

;

-- End of IMPORTS

-- Types

-- PDUs --

   -- FNTP NPDU --

FNTPNPDU::=SEQUENCE{
	header	FNTPHeader,
	body	ITSfpdu  -- specific to an ITS-S application / message
	}

FNTPHeader::=SEQUENCE{
	sourcePort	PortNumber,
	destinationPort	PortNumber,
	options	FntpOptions
	}

FntpOptions::=SEQUENCE{
	intForw	FNTPintForwarding OPTIONAL,
	sec	FNTPsecurity OPTIONAL,
	hops	FNTPhopCount OPTIONAL,
	opt4	NULL OPTIONAL,
	opt5	OCTET STRING OPTIONAL,
	opt6	NULL OPTIONAL,
	lpp	FNTPlpp OPTIONAL,
	cip	FNTPCIPheader OPTIONAL
}

FNTPintForwarding::=SEQUENCE{
	hostITS-scuId	ITS-scuId,
	link	Link-ID,
	counter	FNTPpacketCounter,
	sourcePort	PortNumber,
	destinationPort	PortNumber
	}

FNTPpacketCounter::=INTEGER(0..255)

FNTPsecurity::=OCTET STRING

FNTPhopCount::=INTEGER(0..255)

FNTPCIPheader::=SEQUENCE{
	rxCIP	RXcip, 
	txCIP	TXcip
	}

RXcip::=OCTET STRING (SIZE(0..255))

TXcip::=OCTET STRING (SIZE(0..255))-- may optionally be forwarded to peer ITS station


-- Managements SAP service primitives --
-- Payload definitions for primitives defined in ISO 24102 --

  -- MN-SAP --

    -- FWTxxx --

DeleteFNTP::=SEQUENCE{
	reference	INTEGER(0..noFNTPfwtEntries)
	}

DeleteNotFNTP::=SEQUENCE{
	reference	INTEGER(0..noFNTPfwtEntries)
	}

SetFNTP::=SEQUENCE{
	remotePort	PortNumber,
	linkID	Link-ID,
	ciStatus	CIstatus,
	linkPort	PortNumber,
	serviceInfo	HostServiceInfo, --formerly ServiceNWref
	priority	UserPriority,
	timeout	NTtimeout
	} -- SetConfFNTP will return the reference pointing to the new entry.

SetConfFNTP::=SEQUENCE{
	reference	INTEGER(0..noFNTPfwtEntries)
	}

HostServiceInfo::=SEQUENCE{
	servicePort	PortNumber,
	hostITSscu	ITS-scuId,
	servicePriority	UserPriority
	}

SetNotFNTP::=SEQUENCE{
	reference	INTEGER(0..noFNTPfwtEntries),
	remotePort	PortNumber,
	linkID	Link-ID,
	ciStatus	CIstatus,
	linkPort	PortNumber,
	serviceInfo	HostServiceInfo,
	priority	UserPriority,
	timeout	NTtimeout
	}

UpdateFNTP::=SEQUENCE{
	reference	[1] INTEGER(0..noFNTPfwtEntries),
	remotePort	[2] PortNumber OPTIONAL,
	linkID	[3] Link-ID OPTIONAL,
	ciStatus	[4] CIstatus OPTIONAL,
	linkPort	[5] PortNumber OPTIONAL,
	serviceInfo	[6] HostServiceInfo OPTIONAL,
	priority	[7] UserPriority OPTIONAL,
	timeout	[8] NTtimeout OPTIONAL
	}

UpdateNotFNTP::=SEQUENCE{
	reference	[1] INTEGER(0..noFNTPfwtEntries),
	remotePort	[2] PortNumber OPTIONAL,
	linkID	[3] Link-ID OPTIONAL,
	ciStatus	[4] CIstatus OPTIONAL,
	linkPort	[5] PortNumber OPTIONAL,
	serviceInfo	[6] HostServiceInfo OPTIONAL,
	priority	[7] UserPriority OPTIONAL,
	timeout	[8] NTtimeout OPTIONAL
	}

  -- NF-SAP --

NFsapPrimitivesDown::=SEQUENCE{
	fill	BIT STRING (SIZE(7)),
	primitivesDown	CHOICE{
	fntpPortRequest	NFfntpPortRequest,
	fntpCommRequest	NFfntpCommRequest
	}
	}

NFsapPrimitivesUp::=SEQUENCE{
	fill	BIT STRING (SIZE(6)),
	primitivesUp	CHOICE{
	fntpPortConfirm	NFfntpPortConfirm,
	fntpCommConfirm	NFfntpCommConfirm,
	fntpCommIndication	NFfntpCommIndication
	}
	}

NFfntpPortRequest::=SEQUENCE{
	serviceRef	INTEGER,
	operation	BOOLEAN,
	port	PortNumber,
	priority	UserPriority
	}

NFfntpPortConfirm::=SEQUENCE{
	serviceRef	INTEGER,
	servicePort	PortNumber
	}

NFfntpCommRequest::=SEQUENCE{
	commRef	INTEGER(0..255),
	servicePort	PortNumber,
	remotePort	PortNumber,
	linkID	Link-ID,
	data	ITSfpdu,
	controlField	FntpOptions -- some options do not apply
	}

NFfntpCommConfirm::=SEQUENCE{
	commRef	INTEGER(0..255),
	servicePort	PortNumber,
	errStatus	FNTPerrorStatus
	}

FNTPerrorStatus::=INTEGER{
	success	(0),
	unspecFailure	(1),
	ciBusyTX	(2),
	noForwardInfo	(254),
	ciSuspend	(255)
	} (0..255)

NFfntpCommIndication::=SEQUENCE{
	servicePort	PortNumber,
	remotePort	PortNumber,
	linkID	Link-ID,
	data	ITSfpdu,
	priority	UserPriority
	}

-- General types --

PortNumber::=CHOICE{
	portShort	INTEGER(0..127),
	portLong	INTEGER(0..32767)
	}

ITSfpdu::= OCTET STRING (SIZE(0..65535)) -- as defined by application. Details not known to FNTP

-- Values

noFNTPfwtEntries	INTEGER::=65535

END
+29 −0
Original line number Diff line number Diff line
CALMlegacySupport { iso (1) standard (0) calm-nonip(29281) legacy (3) version1 (1)}  

DEFINITIONS AUTOMATIC TAGS::=BEGIN

IMPORTS
PortNumber FROM CALMfntp { iso (1) standard (0) calm-nonip(29281) fntp(2) version1 (1)} 
;

-- End of IMPORTS

-- General types --

Param15628::=SEQUENCE{
	fill	BIT STRING (SIZE(7)),
	params	CHOICE{
	legacyOption	[0] INTEGER(0..255),
	portPM	[1] PortNumber -- Port number of 15628 Port Manager
-- 		[2-254]
	}
	}

FNTPlpp::=OCTET STRING (SIZE(0..65535))

-- Values


-- Dummy values not defined here which cannot be imported. To be replaced by proper type.

END

CALMfsap/CALMfsap.asn

0 → 100644
+333 −0
Original line number Diff line number Diff line
--<OSS.PDU>-- 
CALMfsap { iso (1) standard (0) calm-management (24102) fsap (5) version1 (1)} 

DEFINITIONS AUTOMATIC TAGS::=BEGIN

IMPORTS

ITSaid FROM CITSapplMgmtApplReg {iso(1) standard(0) cits-applMgmt (17419) applRegistry (2) version1 (1)}

PortNumber FROM CALMfntp { iso (1) standard (0) calm-nonip(29281) fntp(2) version1 (1)}

Directivity, LLserviceAddr, MedType, UserPriority FROM CALMllsap {iso(1) standard(0) calm-ll-sap(21218) version1(1)} 

ITS-scuId, StationID FROM CALMmanagement { iso (1) standard (0) calm-management (24102) local (1) version1 (1)}

TransportAddressType, TransportAddress FROM TRANSPORT-ADDRESS-MIB

;

-- End of IMPORTS

-- Types

-- PDUs --

-- SAM --

SAM::=SEQUENCE{
	fmtID	FmtID, -- value sam
	version	VersionFSAP, 
	serverID	StationID,
	serviceList	ServiceList,
	channelList	ChannelList,
	ipServList	IpServList
	}

FmtID::=INTEGER{
	sam (0),
	ctx (1)
	} (0..15)

VersionFSAP::=INTEGER(0..15)

ServiceList::=SEQUENCE (SIZE(0..noNonipServices))OF NonipService

ChannelList::=SEQUENCE(SIZE(0..noChannels)) OF SessionChannel
-- Name changed from ServiceChannel to SessionChannel for clarification

IpServList::=SEQUENCE (SIZE(0..noIpServices))OF IpService

NonipService::=SEQUENCE{
	serviceID	ITSaid,
	serviceData	ServiceData, 
	serverPort	PortNumber, -- always transmitted, even if not used
	sesssionChannel	INTEGER(0..noChannels) -- '0':no change of channel
	}

SessionChannel::= SEQUENCE{
	serviceChannel	INTEGER(0..255), -- medium-specific channel number
	medium	MedType, -- identification of access technology
	schParams	OCTET STRING -- medium-specific parameters
}

IpService::=SEQUENCE{
	serviceID	ITSaid,
	serviceData	IpServiceData,
	ipInfo	IpInfo,
	sessionChannel	INTEGER(0..noChannels)
}

-- CTX --

CTX::=SEQUENCE{
	fmtID	FmtID, -- value ctx
	version	VersionFSAP,
	clientID	StationID,
	servContextList	ServContextList,
	ipContextList	IpContextList
}

ServContextList::=SEQUENCE (SIZE(0..noNonipContexts))OF NonipContext

IpContextList::=SEQUENCE (SIZE(0..noIpContexts))OF IpContext

IpContext::=SEQUENCE{
	serviceID	ITSaid,
	contextData	IpContextData, 
	ipInfo	IpInfo
}

-- MF-SAP services --

GCctxTxCmd::=SEQUENCE{ 
	link	LLserviceAddr, -- NT protocol and UC-VCI
	ctx	CTX
	}

GCperiodCmd::=SEQUENCE{
	applicationID	ApplicationID, 
	bcVCIs	SEQUENCE (SIZE(1..256)) OF LLserviceAddr,
	gcInterval	GcInterval, -- repetition interval
	priority	UserPriority, -- of advertisement
	serviceDataReg	ServiceDataReg -- advertisement details
	}

GCsamctx::= SEQUENCE{
	applicationID	ApplicationID, -- unique in the host
	serverID	StationID, -- of peer station
	serviceInfo	ServiceInfo
	}

GCdeleteCmd::=SEQUENCE{
	applicationID	ApplicationID
	}

ServiceInfo::=SEQUENCE{
	fill	BIT STRING (SIZE(7)),
	info	CHOICE{
			nonipService	NonipSAMctx,
			ipService	IpSAMctx
		}
	}

NonipSAMctx::=SEQUENCE{
	serviceID	ITSaid,
	providerPort	PortNumber
	}

IpSAMctx::=SEQUENCE{
	serviceID	ITSaid,
	ipInfo	IpInfo
	}

-- MN-SAP services --

CTXrxNot::=SEQUENCE{
	link	LLserviceAddr,
	ctx	CTX
	}

SAMrxNot::=SEQUENCE{
	link	LLserviceAddr,
	sam	SAM
	}

GCsam::= SEQUENCE{
	applicationID	ApplicationID,  -- unique in the host
	serverID	StationID,  -- peer station
	serviceData	SAMserviceData
}

SAMserviceData::=SEQUENCE{
	fill	BIT STRING (SIZE(7)),
	servData	CHOICE	{
			nonipService	NonipSAM,
			ipService	IpSAM
		}
	}

NonipSAM::=SEQUENCE{
	serviceID	ITSaid,
	serviceData	ServiceData,
	providerPort	PortNumber 
}

IpSAM::=SEQUENCE{
	serviceID	ITSaid,
	serviceData	IpServiceData,
	ipInfo	IpInfo
	}

GCctx::= SEQUENCE{
	applicationID	ApplicationID, -- unique in the host
	clientID	StationID, -- peer station
	serviceContext	CTXserviceData
	}

CTXserviceData::=SEQUENCE{
	fill	BIT STRING (SIZE(7)),
	servData	CHOICE	{
			nonipContext	NonipContext,
			ipContext	IpContext
		}
	} 

NonipContext::=SEQUENCE{
	serviceID	ITSaid,
	contextData	ContextData,
	userPort	PortNumber
	}

GCregServer::= SEQUENCE{
	applicationID	ApplicationID,
	gCschedule	GCschedule,
	priority	UserPriority,
	serviceDataReg	ServiceDataReg
	}

GCupdateServer::= SEQUENCE{
	applicationID	ApplicationID,
	gCschedule	GCschedule,
	fill	BIT STRING (SIZE(7)),
	serviceDataReg	SEQUENCE (SIZE(0..1)) OF ServiceDataReg
	}

GCderegServer::= SEQUENCE{
	applicationID	ApplicationID
	}

GCregClient::= SEQUENCE{
	applicationID	ApplicationID,
	priority	UserPriority,
	serviceID	ITSaid,
	contextData	ContextData
	}

GCupdateClient::= SEQUENCE{
	applicationID	ApplicationID,
	serviceID	ITSaid,
	contextData	ContextData
	}

GCderegClient::= SEQUENCE{
	applicationID	ApplicationID
	}

GCregServerConf::= SEQUENCE{
	applicationID	ApplicationID
	}

GCupdateServerConf::= SEQUENCE{
	applicationID	ApplicationID
	}

GCderegServerConf::= SEQUENCE{
	applicationID	ApplicationID
	}

GCregClientConf::= SEQUENCE{
	applicationID	ApplicationID
	}

GCupdateClientConf::= SEQUENCE{
	applicationID	ApplicationID
	}

GCderegClientConf::= SEQUENCE{
	applicationID	ApplicationID
	}


-- General types --

ApplicationID::=SEQUENCE{
	hostITS-scuId	ITS-scuId,
	seqNumber	INTEGER(0..65535) -- unique in the ITS-SCU (host)
	}

ServiceData::=OCTET STRING (SIZE(0..noServiceDataOctets))

ContextData::=OCTET STRING (SIZE(0..noContextDataOctets))

IpServiceData::=OCTET STRING (SIZE(0..noIpServiceDataOctets))

IpContextData::=OCTET STRING (SIZE(0..noIpContextDataOctets))

GCschedule::= SEQUENCE (SIZE(0..255)) OF GCsched

GCsched::= SEQUENCE{
	medium	MedType,
	directivity	Directivity,
	gcInterval	GcInterval
	}

ServiceDataReg::= SEQUENCE{
	fill	BIT STRING (SIZE(7)),
	datareg	CHOICE{
			nonipData	[0] NonipServiceReg,
			ipData	[1] IpServiceReg
		}
	}

NonipServiceReg::=SEQUENCE{
	serviceID	ITSaid,
	timeout	NTtimeout, -- formerly named FASTtimeout
	serviceData	OCTET STRING (SIZE(0..noServiceDataOctets)),
	providerPort	PortNumber -- if not used, put PORT_UNK
}

IpServiceReg::=SEQUENCE{
	serviceID	ITSaid,
	serviceData	OCTET STRING (SIZE(0..noIpServiceDataOctets)),
	ipInfo	IpInfo
	}

GcInterval::=INTEGER(0..65535) -- in ms

NTtimeout::=INTEGER(0..65535) -- in s

IpInfo::=SEQUENCE{
	address	IpAddressInfo
	}

IpAddressInfo::=SEQUENCE{
	addressType	TransportAddressType,
	address	TransportAddress
}

-- Values
-- to be corrected / confirmed

noNonipServices INTEGER::=255

noChannels INTEGER::=255

noIpServices INTEGER::=255

noNonipContexts INTEGER::=255

noIpContexts INTEGER::=255

noServiceDataOctets INTEGER::=65535

noIpServiceDataOctets INTEGER::=65535

noContextDataOctets INTEGER::=65535

noIpContextDataOctets INTEGER::=65535

versionNoFSAP INTEGER::=0 -- This standard

END
+141 −0
Original line number Diff line number Diff line
--<OSS.PDU>-- 
CALMiitsscu { iso (1) standard (0) calm-management (24102) iitsscu (4) version1 (1)} 

DEFINITIONS AUTOMATIC TAGS::=BEGIN

IMPORTS

CIaClass, CIclass, CIstatus, Directivity, Link-ID, LLserviceAddr, MACaddress, MedType FROM CALMllsap {iso(1) standard(0) calm-ll-sap(21218) version1(1)} 

ITS-scuId FROM CALMmanagement { iso (1) standard (0) calm-management (24102) local (1) version1 (1)}

MF-Command-request, MF-Request-request, MN-Command-request, MN-Request-request, MI-Command-request, MI-Request-request, MI-Get-request, MI-Set-request, MF-Command-confirm, MF-Request-confirm, MN-Command-confirm, MN-Request-confirm, MI-Command-confirm, MI-Request-confirm, MI-Get-confirm, MI-Set-confirm FROM CALMmsap {iso (1) standard (0) calm-management (24102) msap (3) version1 (1)} 

-- Details on SecRq and SecRs to be provided by standard on security

;

-- End of IMPORTS

-- Types

-- PDUs --
IIC-Request::=SEQUENCE{
	sourceITS-scuId	ITS-scuId,
	destinationITS-scuId	ITS-scuId,
	pduCounter	PduCounter,
	pduRequest	PduRequest,
	seqRq	SecRq
	}

SecRq::=OCTET STRING (SIZE(0..65535))

PduRequest::=SEQUENCE{
	fill	BIT STRING (SIZE(4)),
	requests	CHOICE{
	alive	ITS-SCUalive,
	mf-rcmd	MF-Command-request,
	mf-rreq	MF-Request-request,
	mn-rcmd	MN-Command-request,
	mn-rreq	MN-Request-request,
	mi-rcmd	MI-Command-request,
	mi-rreq	MI-Request-request,
	mi-rget	MI-Get-request,
	mi-rset	MI-Set-request,
	vCI-info	VCI-info-req,
	vCI-update	VCI-update-req
	}
	}

ITS-SCUalive::=SEQUENCE{
	message	AliveMessage,
	its-scuType	ITS-SCUtype
	}

AliveMessage::= INTEGER{
	alive (0),
	delete (1),
	new (255)
	} (0..255)

ITS-SCUtype::= INTEGER{
	host (1),
	router (2),
	any (255)
	} (0..255)

VCI-info-req::=SEQUENCE{
	medType	MedType,
	ciaClass	CIaClass,
	ciClass	CIclass
	}

VCI-update-req::=SEQUENCE (SIZE(0..255)) OF VCI-Info

VCI-Info::=SEQUENCE{
	linkId	Link-ID,
	medType	MedType,
	ciaClass	CIaClass,
	ciClass	CIclass,
	status	CIstatus
	}

IIC-Response::=SEQUENCE{
	sourceITS-scuId	ITS-scuId,
	destinationITS-scuId	ITS-scuId,
	pduCounter	PduCounter,
	pduResponse	PduResponse,
	errorStatus	PduErrStatus,
	seqRs	SecRs
	}

SecRs::=OCTET STRING (SIZE(0..65535))

PduResponse::=SEQUENCE{
	fill	BIT STRING (SIZE(4)),
	responses	CHOICE{
	alive	ITS-SCUalive,
	mf-rcmd	MF-Command-confirm,
	mf-rreq	MF-Request-confirm,
	mn-rcmd	MN-Command-confirm,
	mn-rreq	MN-Request-confirm,
	mi-rcmd	MI-Command-confirm,
	mi-rreq	MI-Request-confirm,
	mi-rget	MI-Get-confirm,
	mi-rset	MI-Set-confirm,
	vCI-info	VCI-info-res,
	vCI-update	NULL
	}
	}

PduErrStatus::=INTEGER{
	success (0),
	pduUnknown (1),
	duplicateITS-scuId (2),
	unspecFailure (255)
	} (0..255)

VCI-info-res::=SEQUENCE (SIZE(0..255)) OF VCI-Info

-- MF-SAP --

-- MF-COMMANDs --

IICrequestTX::=IIC-Request

IICresponseTX::=IIC-Response

-- MF-REQUESTs --

IICrequestRX::=IIC-Request

IICresponseRX::=IIC-Response


-- General types --

PduCounter::=INTEGER(0..65535)

-- Values

END

CALMipv6/CALMipv6.asn

0 → 100644
+98 −0
Original line number Diff line number Diff line
CALMipv6 { iso(1) standard(0) calm-ipv6(21210) version0(0) } 

DEFINITIONS AUTOMATIC TAGS::=BEGIN 

IMPORTS 
Link-ID, CIstatus, UserPriority FROM CALMllsap {iso(1) standard(0) calm-ll-sap(21218) version1(1)}

IpAddressInfo FROM CALMfsap { iso (1) standard (0) calm-management (24102) fsap (5) version1 (1)}  

TransportAddressType, TransportAddress FROM TRANSPORT-ADDRESS-MIB;
-- It needs to be checked whether this ASN.1 module is the correct one.

-- End of IMPORTS

DeleteIPv6::=SEQUENCE	-- used in 24102
{
reference	INTEGER(0..65535)
}

DeleteNotIPv6::=SEQUENCE	-- used in 24102
{
reference	INTEGER(0..65535)
}

SetConfIPv6::=SEQUENCE	-- used in 24102
{
reference	INTEGER(0..65535)
}

SetIPv6::=SEQUENCE	-- used in 24102
{
reference	INTEGER(0..65535),
remoteIP	IpAddressInfo,
ciid		Link-ID,
ciStatus	CIstatus,
localIP		IpAddressInfo,
priority	UserPriority,
timeout		IPv6timeout
}

SetNotIPv6::=SEQUENCE	-- used in 24102
{
reference	INTEGER(0..65535),
remoteIP	IpAddressInfo,
ciid		Link-ID,
ciStatus	CIstatus,
localIP		IpAddressInfo,
priority	UserPriority,
timeout		IPv6timeout
}

UpdateIPv6::=SEQUENCE	-- used in 24102
{
fill		[0] BIT STRING (SIZE(2)),
reference	[1] INTEGER(0..65535),
remoteIP	[2] IpAddressInfo OPTIONAL,
ciid		[3] Link-ID OPTIONAL,
ciStatus	[4] CIstatus OPTIONAL,
localIP		[5] IpAddressInfo OPTIONAL,
priority	[6] UserPriority OPTIONAL,
timeout		[7] IPv6timeout OPTIONAL
}

UpdateNotIPv6::=SEQUENCE	-- used in 24102
{
fill		[0] BIT STRING (SIZE(2)),
reference	[1] INTEGER(0..65535),
remoteIP	[2] IpAddressInfo OPTIONAL,
ciid		[3] Link-ID OPTIONAL,
ciStatus	[4] CIstatus OPTIONAL,
localIP		[5] IpAddressInfo OPTIONAL,
priority	[6] UserPriority OPTIONAL,
timeout		[7] IPv6timeout OPTIONAL
}

IPv6timeout::=INTEGER(0..65535)	-- Used in IPv6 forwarding tables; in ms

-- CME-Application-SET::= 
-- This was used in the previous version of IS21217. 
-- Needs to be checked how it is used now.
-- If this is no more used, then IS24102 needs to be changed.

-- IpAddress::=
-- Part of CME-Application-SET
-- Is contained in IpAddressInfo

-- SocketID::=
-- Part of CME-Application-SET
-- Likely the meaning is the same as for "reference" used above

-- PhysicalInfo::=
-- Part of CME-Application-SET

-- PortNumber::=
-- Part of CME-Application-SET
-- Is contained in IpAddressInfo

END
Loading