CALMiitsscu.asn 12.9 KB
Newer Older
garciay's avatar
garciay committed
CALMiitsscu { iso (1) standard (0) calm-management (24102) iitsscu (4) asnm-1 (1) version1 (1)} 
DEFINITIONS AUTOMATIC TAGS::=BEGIN

IMPORTS
garciay's avatar
garciay committed
CIaClass, CIclass, CIstatus, Directivity, Link-ID, LLserviceAddr, MACaddress, MedType, NullType FROM CALMllsap {iso(1) standard(0) calm-ll-sap(21218) asnm-1 (1) version1 (1)} 
garciay's avatar
garciay committed
ITS-scuId, Param24102No, Param24102 FROM CALMmanagement { iso (1) standard (0) calm-management (24102) local (1) asnm-1 (1) version1 (1)}
garciay's avatar
garciay committed
SimFUTcmd, SimFUTreq, SimFLTcmd, SimNUTcmd, SimNLTcmd, SimIUTcmd, SimFLTreq, SimNUTreq, SimNLTreq, SimIUTreq, ErrStatus, MF-Command-request, MF-Request-request, MN-Command-request, MN-Request-request, MI-Command-request, MI-Request-request, MA-Command-request, MA-Request-request, MS-Command-request, MS-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, MA-Command-confirm, MA-Request-confirm, MS-Command-confirm, MS-Request-confirm, MI-Get-confirm, MI-Set-confirm FROM CALMmsap {iso (1) standard (0) calm-management (24102) msap (3) asnm-1 (1) version1 (1)} 
-- Details on SecRq and SecRs to be provided by a standard on security
;
-- End of IMPORTS

-- Types

-- PDUs --
garciay's avatar
garciay committed
-- IIC-Request PDU
IIC-Request::=SEQUENCE{
	sourceITS-scuId	ITS-scuId,
	destinationITS-scuId	ITS-scuId,
	pduCounter	PduCounter,
garciay's avatar
garciay committed
	requestID	RequestID, -- value zero
	pduRequest	PduRequest,
garciay's avatar
garciay committed
	secRq	SecRq
garciay's avatar
garciay committed
RequestID::=INTEGER{
	request	(0)
	} (0..255)
garciay's avatar
garciay committed
RefIICP ::= INTEGER { -- Define IICPREQ.ref values range
	c-alive       (0),
	c-mfRcmd      (1),
	c-mfRreq      (2),
	c-mnRcmd      (3),
	c-mnRreq      (4),
	c-miRcmd      (5),
	c-miRreq      (6),
	c-miRget      (7),
	c-miRset      (8),
	c-mCmd        (9),
	c-maRcmd      (10),
	c-maRreq      (11), 
	c-msRcmd      (12), 
	c-msRreq      (13),
	c-simUtIn		(240),
	c-simUtOut	(241),
	c-simAutCmd	(242),
	c-simAutReq	(243),
	c-simFutCmd   (244),
	c-simFutReq   (245),
	c-simNutCmd   (246),
	c-simNutReq   (247),
	c-simIutCmd   (248),
	c-simIutReq   (249),
	c-simAltCmd	(250),
	c-simAltReq	(251),
	c-simFltCmd   (252),
	c-simFltReq   (253),
	c-simNltCmd   (254),
	c-simNltReq   (255)
} (0..255)

IICPREQ::=CLASS{
	&ref	RefIICP UNIQUE, -- data type identifier
	&IICPrequest
garciay's avatar
garciay committed

IICPrequests IICPREQ::={aliveRq | mfRcmdRq | mfRreqRq | mnRcmdRq | mnRreqRq | miRcmdRq | miRreqRq | miRgetRq | miRsetRq | mCmdRq | maRcmdRq | maRreqRq | msRcmdRq | msRreqRq | simFutCmdRq | simFutReqRq | simNutCmdRq | simNutReqRq | simIutCmdRq | simIutReqRq | simFltCmdRq | simFltReqRq | simNltCmdRq | simNltReqRq | simUtInRq | simUtOutRq, ...}

PduRequest::=SEQUENCE{
	reqRef	IICPREQ.&ref({IICPrequests}), -- data type identifier
	iicpReq	IICPREQ.&IICPrequest({IICPrequests}{@reqRef})
garciay's avatar
garciay committed
aliveRq		IICPREQ::={&ref c-alive, &IICPrequest ITS-SCUalive}
mfRcmdRq	IICPREQ::={&ref c-mfRcmd, &IICPrequest MF-Command-request}
mfRreqRq	IICPREQ::={&ref c-mfRreq, &IICPrequest MF-Request-request}
mnRcmdRq	IICPREQ::={&ref c-mnRcmd, &IICPrequest MN-Command-request}
mnRreqRq	IICPREQ::={&ref c-mnRreq, &IICPrequest MN-Request-request}
miRcmdRq	IICPREQ::={&ref c-miRcmd, &IICPrequest MI-Command-request}
miRreqRq	IICPREQ::={&ref c-miRreq, &IICPrequest MI-Request-request}
miRgetRq	IICPREQ::={&ref c-miRget, &IICPrequest MI-Get-request}
miRsetRq	IICPREQ::={&ref c-miRset, &IICPrequest MI-Set-request}
mCmdRq		IICPREQ::={&ref c-mCmd, &IICPrequest McmdRq}
maRcmdRq	IICPREQ::={&ref c-maRcmd, &IICPrequest MA-Command-request}
maRreqRq	IICPREQ::={&ref c-maRreq, &IICPrequest MA-Request-request}
msRcmdRq	IICPREQ::={&ref c-msRcmd, &IICPrequest MS-Command-request}
msRreqRq	IICPREQ::={&ref c-msRreq, &IICPrequest MS-Request-request}
-- simAutCmdRq	IICPREQ::={&ref c-simAutCmd, &IICPrequest SimAUTcmd}
-- simAutReqRq	IICPREQ::={&ref c-simAutReq, &IICPrequest SimAUTreq}
simFutCmdRq	IICPREQ::={&ref c-simFutCmd, &IICPrequest SimFUTcmd}
simFutReqRq	IICPREQ::={&ref c-simFutReq, &IICPrequest SimFUTreq}
simNutCmdRq	IICPREQ::={&ref c-simNutCmd, &IICPrequest SimNUTcmd}
simNutReqRq	IICPREQ::={&ref c-simNutReq, &IICPrequest SimNUTreq}
simIutCmdRq	IICPREQ::={&ref c-simIutCmd, &IICPrequest SimIUTcmd}
simIutReqRq	IICPREQ::={&ref c-simIutReq, &IICPrequest SimIUTreq}
-- simAltCmdRq	IICPREQ::={&ref c-simAltCmd, &IICPrequest SimALTcmd}
-- simAltReqRq	IICPREQ::={&ref c-simAltReq, &IICPrequest SimALTreq}
simFltCmdRq	IICPREQ::={&ref c-simFltCmd, &IICPrequest SimFLTcmd}
simFltReqRq	IICPREQ::={&ref c-simFltReq, &IICPrequest SimFLTreq}
simNltCmdRq	IICPREQ::={&ref c-simNltCmd, &IICPrequest SimNLTcmd}
simNltReqRq	IICPREQ::={&ref c-simNltReq, &IICPrequest SimNLTreq}
simUtInRq	IICPREQ::={&ref c-simUtIn, &IICPrequest SimUt}
simUtOutRq	IICPREQ::={&ref c-simUtOut, &IICPrequest SimUt}


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

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

ITS-SCUtype::= INTEGER{
garciay's avatar
garciay committed
    unknown (0),
	host (1), -- multicast address
	router (2), -- multicast address
	itsTestSystem (3), -- used in conformance testing
	itsTestCIunit (4), -- used in conformance testing
	any (255) -- broadcast address
garciay's avatar
garciay committed
	
SimUt::=SEQUENCE{
	fill	BIT STRING (SIZE(3)), -- all bits set to '0'
	action	CHOICE{
		mfCmdReq	MF-Command-request,
		mfCmdConf	MF-Command-confirm,
		mnCmdReq	MN-Command-request,
		mnCmdConf	MN-Command-confirm,
		miCmdReq	MI-Command-request,
		miCmdConf	MI-Command-confirm,
		maCmdReq	MA-Command-request,
		maCmdConf	MA-Command-confirm,
		mfReqReq	MF-Request-request,
		mfReqConf	MF-Request-confirm,
		mnReqReq	MN-Request-request,
		mnReqConf	MN-Request-confirm,
		miReqReq	MI-Request-request,
		miReqConf	MI-Request-confirm,
		maReqReq	MA-Request-request,
		maReqConf	MA-Request-confirm,
		miGetReq	MI-Get-request,
		miGetConf	MI-Get-confirm,
		miSetReq	MI-Set-request,
		miSetConf	MI-Set-confirm,
		mcmdTrigger	McmdRq,
		mcmdEvent	McmdRs
--		msCmdReq	MS-Command-request,
--		msCmdConf	MS-Command-confirm,
--		msReqReq	MS-Request-request,
--		msReqConf	MS-Request-confirm
		}
	}


-- General OBJECT CLASS for management commands

RefMcmdRq ::= INTEGER { -- allows for 256 commands
	c-pingRq           (0),
	c-vCIinfoRq        (1),
	c-vCIupdateRq      (2),
	c-getParam24102Rq  (3),
	c-setParam24102Rq  (4),
	c-testIicpRq       (254),
	c-testConfigRq     (255)
} (0..255)

MCMDREQ::=CLASS{
	&refMcmd	RefMcmdRq UNIQUE, -- allows for 256 commands
	&Mcmd
	}

McmdReqs MCMDREQ::={pingRq | vCIinfoRq | vCIupdateRq | getParam24102Rq | setParam24102Rq | testConfigRq, ...}

McmdRq::=SEQUENCE{
	mCmdRef	MCMDREQ.&refMcmd({McmdReqs}),
	mcmd	MCMDREQ.&Mcmd ({McmdReqs}{@mCmdRef})
	}

pingRq	        MCMDREQ::={&refMcmd c-pingRq, &Mcmd PingIICP}
vCIinfoRq	MCMDREQ::={&refMcmd c-vCIinfoRq, &Mcmd VCI-info-req}
vCIupdateRq	MCMDREQ::={&refMcmd c-vCIupdateRq, &Mcmd VCI-update-req}
getParam24102Rq	MCMDREQ::={&refMcmd c-getParam24102Rq, &Mcmd Param24102No}
setParam24102Rq	MCMDREQ::={&refMcmd c-setParam24102Rq, &Mcmd Param24102}
testConfigRq	MCMDREQ::={&refMcmd c-testConfigRq, &Mcmd TestConfigIICP}

PingIICP::=OCTET STRING (SIZE(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
	}

garciay's avatar
garciay committed
TestConfigIICP::=SEQUENCE{
	location	BIT STRING (SIZE(6)),
	lowerLayers	BIT STRING (SIZE(1)),
	testMode	BIT STRING (SIZE(1))
	}

	

-- IIC-Response PDU

IIC-Response::=SEQUENCE{
	sourceITS-scuId	ITS-scuId,
	destinationITS-scuId	ITS-scuId,
	pduCounter	PduCounter,
garciay's avatar
garciay committed
	responseID	ResponseID, -- value 1
	pduResponse	PduResponse,
	errorStatus	PduErrStatus,
garciay's avatar
garciay committed
	secRs	SecRs
garciay's avatar
garciay committed
ResponseID::=INTEGER{
	response	(1)
	} (0..255)


IICPRES::=CLASS{
	&ref	RefIICP UNIQUE,
	&IICPresponse
	}

IICPresponses IICPRES::={aliveRs | mfRcmdRs | mfRreqRs | mnRcmdRs | mnRreqRs | miRcmdRs | miRreqRs | miRgetRs | miRgetRs | miRsetRs | mCmdRs | maRcmdRs | maRreqRs | msRcmdRs | msRreqRs |  simAutCmdRs | simAutReqRs | simFutCmdRs | simFutReqRs | simNutCmdRs | simNutReqRs | simIutCmdRs | simIutReqRs | simAltCmdRs | simAltReqRs | simFltCmdRs | simFltReqRs | simNltCmdRs | simNltReqRs | simUtInRs | simUtOutRs, ...}

PduResponse::=SEQUENCE{
garciay's avatar
garciay committed
	resRef	IICPRES.&ref({IICPresponses}), -- data type identifier
	iicpRes	IICPRES.&IICPresponse({IICPresponses}{@resRef})
	}

aliveRs		IICPRES::={&ref c-alive, &IICPresponse ITS-SCUalive}
mfRcmdRs	IICPRES::={&ref c-mfRcmd, &IICPresponse MF-Command-confirm}
mfRreqRs	IICPRES::={&ref c-mfRreq, &IICPresponse MF-Request-confirm}
mnRcmdRs	IICPRES::={&ref c-mnRcmd, &IICPresponse MN-Command-confirm}
mnRreqRs	IICPRES::={&ref c-mnRreq, &IICPresponse MN-Request-confirm}
miRcmdRs	IICPRES::={&ref c-miRcmd, &IICPresponse MI-Command-confirm}
miRreqRs	IICPRES::={&ref c-miRreq, &IICPresponse MI-Request-confirm}
miRgetRs	IICPRES::={&ref c-miRget, &IICPresponse MI-Get-confirm}
miRsetRs	IICPRES::={&ref c-miRset, &IICPresponse MI-Set-confirm}
mCmdRs		IICPRES::={&ref c-mCmd, &IICPresponse McmdRs}
maRcmdRs	IICPRES::={&ref c-maRcmd, &IICPresponse MA-Command-confirm}
maRreqRs	IICPRES::={&ref c-maRreq, &IICPresponse MA-Request-confirm}
msRcmdRs	IICPRES::={&ref c-msRcmd, &IICPresponse MS-Command-confirm}
msRreqRs	IICPRES::={&ref c-msRreq, &IICPresponse MS-Request-confirm}
simAutCmdRs	IICPRES::={&ref c-simAutCmd, &IICPresponse NULL}
simAutReqRs	IICPRES::={&ref c-simAutReq, &IICPresponse NULL}
simFutCmdRs	IICPRES::={&ref c-simFutCmd, &IICPresponse NULL}
simFutReqRs	IICPRES::={&ref c-simFutReq, &IICPresponse NULL}
simNutCmdRs	IICPRES::={&ref c-simNutCmd, &IICPresponse NULL}
simNutReqRs	IICPRES::={&ref c-simNutReq, &IICPresponse NULL}
simIutCmdRs	IICPRES::={&ref c-simIutCmd, &IICPresponse NULL}
simIutReqRs	IICPRES::={&ref c-simIutReq, &IICPresponse NULL}
simAltCmdRs	IICPRES::={&ref c-simAltCmd, &IICPresponse NULL}
simAltReqRs	IICPRES::={&ref c-simAltReq, &IICPresponse NULL}
simFltCmdRs	IICPRES::={&ref c-simFltCmd, &IICPresponse NULL}
simFltReqRs	IICPRES::={&ref c-simFltReq, &IICPresponse NULL}
simNltReqRs	IICPRES::={&ref c-simNltReq, &IICPresponse NULL}
simNltCmdRs	IICPRES::={&ref c-simNltCmd, &IICPresponse NULL}
simUtInRs	IICPRES::={&ref c-simUtIn, &IICPresponse NULL}
simUtOutRs	IICPRES::={&ref c-simUtOut, &IICPresponse NULL}

RefMcmdRs ::= INTEGER {
	c-pingRs           (0),
	c-vCIinfoRs        (1),
	c-vCIupdateRs      (2),
	c-getParam24102Rs  (3),
	c-setParam24102Rs  (4),
	c-testIicpRs       (254),
	c-testConfigRs     (255)
} (0..255)

MCMDRES::=CLASS{
	&refMcmd	RefMcmdRs UNIQUE, 
	&Mcmd
garciay's avatar
garciay committed

McmdRess MCMDRES::={pingRs | vCIinfoRs | vCIupdateRs | getParam24102Rs | setParam24102Rs | testConfigRs, ...}

McmdRs::=SEQUENCE{
	mCmdRef	MCMDRES.&refMcmd({McmdRess}),
	mcmd	MCMDRES.&Mcmd ({McmdRess}{@mCmdRef})
garciay's avatar
garciay committed
pingRs	        MCMDRES::={&refMcmd c-pingRs, &Mcmd PingIICP}
vCIinfoRs	MCMDRES::={&refMcmd c-vCIinfoRs, &Mcmd VCI-info-res}
vCIupdateRs	MCMDRES::={&refMcmd c-vCIupdateRs, &Mcmd NULL}
getParam24102Rs	MCMDRES::={&refMcmd c-getParam24102Rs, &Mcmd Param24102}
setParam24102Rs	MCMDRES::={&refMcmd c-setParam24102Rs, &Mcmd ErrStatus}
testConfigRs	MCMDRES::={&refMcmd c-testConfigRs, &Mcmd NullType}

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

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

garciay's avatar
garciay committed
-- SECURITY IIC_REQUEST
RefSECIICPRQ ::= INTEGER {
	c-secRqRef (0),
	c-secRq    (1)
} (0..255)

SECIICPRQ::=CLASS{
	&ref	RefSECIICPRQ UNIQUE, -- security type identifier
	&SecIICP
	}


SecIICPRQs SECIICPRQ::={noSecurityRq | octStringRq, ...}

SecRq::=SEQUENCE{
	secRqRef	SECIICPRQ.&ref({SecIICPRQs}),
	secRq	SECIICPRQ.&SecIICP({SecIICPRQs}{@secRqRef})
	}

noSecurityRq   SECIICPRQ::={&ref c-secRqRef, &SecIICP NullType}
octStringRq    SECIICPRQ::={&ref c-secRq, &SecIICP SecIICPpayload }

-- SECURITY IIC_RESPONSE
RefSECIICPRS ::= INTEGER {
	c-secRsRef (0),
	c-secRs    (1)
} (0..255)
SECIICPRS ::= CLASS{
	&ref	RefSECIICPRS UNIQUE, -- security type identifier
	&SecIICP
	}
SECIICPRSs SECIICPRS::={noSecurityRs | octStringRs, ...}


SecRs::=SEQUENCE{
	secRsRef	SECIICPRS.&ref({SECIICPRSs}),
	secRs		SECIICPRS.&SecIICP({SECIICPRSs}{@secRsRef})
	}

noSecurityRs   SECIICPRS::={&ref c-secRsRef, &SecIICP NullType}
octStringRs    SECIICPRS::={&ref c-secRs, &SecIICP SecIICPpayload }

SecIICPpayload ::= OCTET STRING (SIZE(0..65535))
-- 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

garciay's avatar
garciay committed
version INTEGER(0..255)::=2 -- version of this ASN.1 module

/*
   The ASN.1 specification has been checked for conformance to the ASN.1
   standards by OSS ASN.1 Syntax Checker, and by OSS ASN-1STEP
*/