Commits (2)
CITSapplMgmtApplReg {iso(1) standard(0) cits-applMgmt (17419) applRegistry (2) version1 (1) }
DEFINITIONS AUTOMATIC TAGS::=BEGIN
-- Warning: Module is still under development
IMPORTS
VarLengthNumber, VarLengthNumber2 FROM CITSapplMgmtIDs {iso(1) standard(0) cits-applMgmt (17419) ids (1)}
LogicalChannelType FROM CITSapplMgmtComm {iso(1) standard(0) cits-applMgmt (17419) comm (3)}
ITSSappRxTxPortNo, ITSSappCPReqReg FROM CITSapplReq {iso(1) standard(0) cits-applReq (17423) asnm-1(1)}
Lon, Lat, UserPriority FROM CALMllsap {iso(1) standard(0) calm-ll-sap(21218) asnm-1(1)}
PortNumber FROM CALMfntp { iso (1) standard (0) calm-nonip(29281) fntp(1) asnm-1 (1)}
;
-- End of IMPORTS
-- Types
-- registration information records for several ITS application objects
-- ITS application object registration ITS-AID
-- registry record for the whole set of registration information
ITSapObRegistry::=SEQUENCE OF ITSapOb
-- for a single ITS application object (ITSapOb)
ITSapOb::=SEQUENCE {
iTSaid ITSaid, -- ITS-AID
iTSapObName ITSObName, -- name of ITS application object
iTSapObType ITSapObType, -- class or application
iTSapObOwner ITSObOwner, -- owner of the ITS application
iTSapObCert ITSapObCertificate, -- information on certificate
iTSapObPorts ITSapObPorts
}
ITSapObPorts::=SEQUENCE OF SEQUENCE{
portNo ITSSappRxTxPortNo,
rules SEQUENCE OF ITSapObPort -- Information per source, see CEN/ISO TS 17423
}
ITSapObPort::= SEQUENCE OF ITSapObPortRule -- all rules shall be used at least once per source!
ITSAPOBSR::=CLASS {
&ruleRef INTEGER(0..255),
&Rule
}
ITSapObPortRule::=SEQUENCE{
ruleNo ITSAPOBSR.&ruleRef({ITSapObPortRules}),
rule ITSAPOBSR.&Rule({ITSapObPortRules}{@ruleNo})
}
ITSapObPortRules ITSAPOBSR::={iTSapObRxTx | iTSapObLch | iTSapObPn, ...}
iTSapObRxTx ITSAPOBSR::={&ruleRef 0, &Rule PortRxTx} -- RX or TX port
iTSapObLch ITSAPOBSR::={&ruleRef 1, &Rule LogicalChannelPrio} -- TX LCH allowed
iTSapObPn ITSAPOBSR::={&ruleRef 2, &Rule PortNumber} -- well-known PortNumber
PortRxTx::=INTEGER{
rxPort (0),
txPort (255)
} (0..255)
LogicalChannelPrio::=SEQUENCE{
lch LogicalChannelType,
prio UserPriority
} -- priority of messages of a source may depend on the LCH.
ITSObName::=OCTET STRING (SIZE(0..255))
ITSapObType::=INTEGER {
appClass (0),
application (1)
} (0..255)
ITSObOwner::=SEQUENCE{
ownerName ITSObOwnerName,
ownerType ITSObOwnerType,
ownerOID OBJECT IDENTIFIER
}
ITSObOwnerName::=OCTET STRING (SIZE(0..255))
ITSObOwnerType::=INTEGER{
standard (0),
private (1)
} (0..255)
ITSapObPriority::=UserPriority
ITSapObCertificate::=SEQUENCE {
issuingSA IssuingSA,
startDate CertStartDate,
endDate CertEndDate,
status CertStatus
}
IssuingSA::=SEQUENCE {
name SAname,
saOID OBJECT IDENTIFIER
}
SAname::=OCTET STRING (SIZE(0..255))
CertStartDate::=SEQUENCE{
fill BIT STRING (SIZE(7)), -- set to zero
csd CHOICE {
inactive [0] NULL, -- indicates that certificate is not issued
date [1] NumericString (SIZE(8)) -- yyyymmdd
}
}
CertEndDate::=SEQUENCE{
fill BIT STRING (SIZE(6)), -- set to zero
ced CHOICE {
inactive [0] NULL, -- this shall apply if StartDate is set to [0]
date [1] NumericString (SIZE(8)), -- yyyymmdd
never [2] NULL -- indicates that there is no end date
}
}
CertStatus::=SEQUENCE{
fill BIT STRING (SIZE(6)), -- set to zero
cs CHOICE {
active [0] NULL, -- certificate is issued
inactive [1] NULL, -- certificate is not issued
testActiv [2] NULL, -- ITS application object is in test phase
blocked [3] CertBlocked -- issued certificate is blocked
}
}
CertBlocked::=SEQUENCE {
date NumericString (SIZE(8)), -- yyyymmdd
issuingSA IssuingSA -- SA who performed black-listing of an ITS-AID
}
-- ITS message set registration ITS-MsgSetID
-- registry record for the whole set of registration information
ITSmsgSetRegistry::=SEQUENCE OF ITSmsgSet
-- for a single ITS message set (ITSmsgSet)
ITSmsgSet::=SEQUENCE {
iTSmsID ITSmsgSetID, -- ITS-MsgSetID
iTSmsName ITSObName, -- human-readable name of ITS message set
iTSmsOwner ITSObOwner -- owner of the ITS message set
}
-- ITS regulatory region registration
-- registry record for the whole set of registration information
ITSregRegionRegistry::=SEQUENCE OF ITSregRegion
-- for a single regulatory region
ITSregRegion::=SEQUENCE{
regID ITSrrID,
regAuthority ITS-RegPolicyAuthority,
fill BIT STRING (SIZE(7)),
regArea ITS-RParea
}
ITS-RegPolicyAuthority::=SEQUENCE{
name ITSObOwnerName,
url URLreg
}
URLreg::=OCTET STRING (SIZE(0..256))
ITSRPAREA::=CLASS{
&areaRef INTEGER(0..255),
&Area
}
ITS-RParea::=SEQUENCE{
areaTypeNo ITSRPAREA.&areaRef({ITS-RPareaTypes}),
areaType ITSRPAREA.&Area({ITS-RPareaTypes})
}
ITS-RPareaTypes ITSRPAREA::={rpAreaCountryCode | rpAreaGeoPolygon,...}
rpAreaCountryCode ITSRPAREA::={&areaRef 0, &Area CountryCode}
rpAreaGeoPolygon ITSRPAREA::={&areaRef 1, &Area GeoPolygon}
GeoPolygon::=SEQUENCE (SIZE(0..65535)) OF GeoCoordinates
GeoCoordinates::=SEQUENCE{
lat Lat, -- from ISO 21218
long Lon -- from ISO 21218
}
CountryCode::=OCTET STRING (SIZE(3)) -- ISO 3166 Alpha-3 code
-- ITS policy region registration
-- registry record for the whole set of registration information
ITSpolRegionRegistry::=SEQUENCE OF ITSpolRegion
-- for a single policy region
ITSpolRegion::=SEQUENCE{
polID ITSprID,
polAuthority ITS-RegPolicyAuthority,
fill BIT STRING (SIZE(7)),
polArea ITS-RParea
}
-- ITS port number registration
-- registry record for the whole set of registration information
ITSportNumberRegistry::=SEQUENCE OF ITSportNumber
-- for a single port number
ITSportNumber::=SEQUENCE{
pn PortNumber, -- PN used by transport protocol
ntProt NTprotocol, -- transport protocol identifier
itssAp ItsAppInfo -- RxTx port (sink/source) of ITS application object
}
ItsAppInfo::=SEQUENCE{
itsAid ITSaid,
rxTxPortNo ITSSappRxTxPortNo
}
NTprotocol::=SEQUENCE{
name OCTET STRING (SIZE(0..255)),
protRef ProtocolReference
}
ProtocolReference::=SEQUENCE{
sdo OCTET STRING (SIZE(0..255)),
docNo OCTET STRING (SIZE(0..255))
}
-- ITS flow type registration
-- registry record for the whole set of registration information
ITSflowTypeRegistry::=SEQUENCE OF ITSflowType
-- for a single flow type
ITSflowType::=SEQUENCE{
id FlowTypeID, -- Flow type identifier (well-known Flow type)
req ITSSappCPReqReg -- list of requirements
}
FlowTypeID::=VarLengthNumber2
-- ITS logical channel registration
-- registry record for the whole set of registration information
ITSlchRegistry::=SEQUENCE OF ITSlch
-- for a single LCH
ITSlch::=SEQUENCE{
lchID LogicalChannelType, -- reference ID of LCH
lchPurpose OCTET STRING (SIZE(0..255)) -- Purpose of LCH
}
-- ITS station unit registration
-- registry record for the whole set of registration information
ITSsuRegistry::=SEQUENCE OF ITSsu
-- for a single ITS-SU
ITSsu::=SEQUENCE{
itssuID ITSsuID
}
-- ITS station communication unit registration
-- registry record for the whole set of registration information
ITSscuRegistry::=SEQUENCE OF ITSscu
-- for a single ITS-SCU
ITSscu::=SEQUENCE{
itsscuID ITSscuID
}
-- ITS-S application process provisioner registration
-- registry record for the whole set of registration information
ITSSappRegistry::=SEQUENCE OF ITSSapPrPr
-- for a single ITS-S-APP
ITSSapPrPr::=SEQUENCE{
itssappID ITSSappid,
itssapProv RegEntryOwner
}
RegEntryOwner::=SEQUENCE{
ownerName OCTET STRING (SIZE(0..255)),
ownerAddress OCTET STRING (SIZE(0..255)),
ownerURL URLreg
}
-- ITS equipment manufacturer registration
-- registry record for the whole set of registration information
ITSemRegistry::=SEQUENCE OF ITSem
-- for a single ITS equipment manufacturer
ITSem::=SEQUENCE{
itsemID ITSemID,
equipManu RegEntryOwner
}
-- ITS application object owner registration
-- registry record for the whole set of registration information
ITSaooRegistry::=SEQUENCE OF ITSaoo
-- for a single ITS application object owner
ITSaoo::=SEQUENCE{
itsaooID ITSaooID,
aoo RegEntryOwner
}
-- ITS message set owner registration
-- registry record for the whole set of registration information
Registry::=SEQUENCE OF ITSmso
-- for a single ITS message set owner
ITSmso::=SEQUENCE{
iTSmsoID ITSmsoID,
mso RegEntryOwner
}
-- ITS-S application process developer registration
-- registry record for the whole set of registration information
ITSSapdRegistry::=SEQUENCE OF ITSSapd
-- for a single ITS-S application process developer
ITSSapd::=SEQUENCE{
itssapdID ITSSapdID,
ad RegEntryOwner
}
-- ID types --
ITSaid::=VarLengthNumber -- used in 24102-5
ITSmsgSetID::=VarLengthNumber
ITSemID::=VarLengthNumber2
ITSsuID::=SEQUENCE{
suID VarLengthNumber,
scuID ITSscuID
}
ITSscuID::=SEQUENCE{
emID ITSemID, -- manufacturer ID
serialNo VarLengthNumber -- serial number
}
ITSSappid::=VarLengthNumber
ITSrrID::=VarLengthNumber
ITSprID::=VarLengthNumber
ITSaooID::=VarLengthNumber
ITSmsoID::=VarLengthNumber2
ITSSapdID::=VarLengthNumber
-- Values
-- OIDs of standards organizations
-- ISO
oidISO OBJECT IDENTIFIER::={iso(1) standard(0)}
-- ETSI
oidETSI OBJECT IDENTIFIER::={itu-t(0) identified-organization(4) etsi(0)}
-- IEEE
oidIEEE OBJECT IDENTIFIER::={iso(1) identified-organization(3) ieee(3)}
-- CEN
oidCEN OBJECT IDENTIFIER::={iso(1) identified-organization(3) cen(162)}
fntpRefNo OCTET STRING(SIZE(0..255))::='49534F2032393238312D31'H --"ISO 29281-1"
-- version of this module
version INTEGER(0..255)::=1
END
CITSapplMgmtComm {iso(1) standard(0) cits-applMgmt (17419) comm (3)}
DEFINITIONS AUTOMATIC TAGS::=BEGIN
-- Warning: Module is still under development
IMPORTS
VarLengthNumber, VarLengthNumber2 FROM CITSapplMgmtIDs {iso(1) standard(0) cits-applMgmt (17419) ids (1)}
;
-- End of IMPORTS
-- Types
LogicalChannelType::=VarLengthNumber2 -- used in 17423, 21218, 24102-1
MCgroup::= VarLengthNumber -- used in 17423
ITSprotocolStackID::= VarLengthNumber -- used in 17423
-- Values
version INTEGER(0..255)::=1 -- version of this module
END
CITSapplMgmtIDs {iso(1) standard(0) cits-applMgmt (17419) ids (1)}
DEFINITIONS AUTOMATIC TAGS::=BEGIN
-- Warning: Module is still under development
IMPORTS
;
-- End of IMPORTS
-- Types
-- Variable length data types
VarLengthNumber::=CHOICE{
content [0] INTEGER(0..127), -- one octet length
extension [1] Ext1
}
Ext1::=CHOICE{
content [0] INTEGER(128..16511), -- two octets length
extension [1] Ext2
}
Ext2::=CHOICE{
content [0] INTEGER(16512..2113663), -- three octets length
extension [1] Ext3
}
Ext3::=INTEGER(211664..270549119,...) -- four and more octets length
VarLengthNumber2::=CHOICE{
shortNo [0] INTEGER(0..127),
longNo [1] INTEGER(0..32767)
}
-- Values
version INTEGER(0..255)::=1 -- version of this module
END
--<OSS.PDU>--
CITSapplReq {iso(1) standard(0) cits-applReq (17423) asnm-1 (1)}
DEFINITIONS AUTOMATIC TAGS::=BEGIN
-- Warning: Module is still under development
IMPORTS
DataRate, Directivity, TimeUnit FROM CALMllsap {iso(1) standard(0) calm-ll-sap(21218) asnm-1(1)}
VarLengthNumber2 FROM CITSapplMgmtIDs {iso(1) standard(0) cits-applMgmt (17419) ids (1)}
ITSaid , FlowTypeID FROM CITSapplMgmtApplReg {iso(1) standard(0) cits-applMgmt (17419) applRegistry (2)}
LogicalChannelType, MCgroup, ITSprotocolStackID FROM CITSapplMgmtComm {iso(1) standard(0) cits-applMgmt (17419) comm (3)}
ApplicationID FROM CALMmanagement { iso (1) standard (0) calm-management (24102) local (1) asnm-1 (1)}
;
-- End of IMPORTS
-- Types
-- Communication Requirement per communication source identified by FlowNo
-- Used in REQUEST.request service primitive
ITSSappCPReqReg::=SEQUENCE{
applicationID ApplicationID,
--ID of ITS-S application process unique in an ITS-SCU
rxTxPort ITSSappRxTxPort,
requirements ITSSappReq
}
ITSSappRxTxPort::=SEQUENCE{
portNo ITSSappRxTxPortNo,
portType ITSSappRxTxPortType
}
ITSSappRxTxPortNo::=VarLengthNumber2
ITSSappRxTxPortType::=INTEGER{
rxPort (0),
txPort (255)
} (0..255)
ServiceRef::=SEQUENCE{
itsaid ITSaid,
instance INTEGER(0..255), -- allows for 256 instances of this app
flowNo FlowNo
}
FlowNo::=INTEGER(0..255) -- allows for 256 different flows per app
-- Used in REQUEST.confirm service primitive
ITSSappCPReqConf::=SEQUENCE{
applicationID ApplicationID,
rxTxPort ITSSappRxTxPort,
confDetails ITSSappReqConf
}
-- Confirmation of presented requirements
REQSCP::=CLASS {
&ref INTEGER(0..255),
&ReqParam
}
ITSSappReq::=SEQUENCE OF SEQUENCE{
refNo REQSCP.&ref({Req-SCP}),
param REQSCP.&ReqParam({Req-SCP}{@refNo})
}
REQSCPCONF::=CLASS {
&ref INTEGER(0..255),
&ReqConfParam
}
ITSSappReqConf::=SEQUENCE OF SEQUENCE{
refNo REQSCPCONF.&ref({ReqConf-SCP}), -- same as in request
param REQSCPCONF.&ReqConfParam({ReqConf-SCP}{@refNo})
}
-- Notification of final decision of ITS-S application process
ITSSappCPFinal::=SEQUENCE{
applicationID ApplicationID, -- same as in .request
final Logic
}
-- Requirements
Req-SCP REQSCP::={logChannel | destType | destDomain | maxAPDU | contConnect | nxRepeat | storeForward | flowType | commDistance | directivity | multiHop | reduntOp | minThP | maxLat | protocolReq | dataConfidentiality | dataIntegrity | nonReputability | dataAuthentication, ...}
-- Mandatory requirements (only odd ref numbers)
logChannel REQSCP::={&ref 0, &ReqParam LogicalChannelType}
destType REQSCP::={&ref 2, &ReqParam DestinationType}
destDomain REQSCP::={&ref 4, &ReqParam DestDomain}
maxAPDU REQSCP::={&ref 6, &ReqParam MaxADU}
DestinationType::=SEQUENCE{
fill BIT STRING (SIZE(7)), -- all bits set to zero
type DestType
}
DestType::=CHOICE{
addressType [0] AddressBasedType,
geoLocType [1] GeoLocationBasedType
}
AddressBasedType::=SEQUENCE{
type INTEGER{
broadCast (0),
multiCast (1),
unicast (2)
}(0..127),
mcGroups SEQUENCE (SIZE(0..255)) OF MCgroup OPTIONAL
}
GeoLocationBasedType::=SEQUENCE{
type INTEGER{
geoUnicast (0),
geoAnycast (1),
geoMulticast (2),
geoBroadcast (4)
} (0..127),
mcGroups SEQUENCE (SIZE(0..255)) OF MCgroup OPTIONAL
}
DestDomain::=INTEGER{
stationInternal (0),
linkLocal (1),
siteLocal (2),
itsNWlocal (4),
global (8)
} (0..255)
MaxADU::=INTEGER(0..65535) -- multiples of 100 byte
-- Optional requirements (only even ref numbers)
contConnect REQSCP::={&ref 1, &ReqParam ContConnect}
nxRepeat REQSCP::={&ref 3, &ReqParam NxRepeat}
storeForward REQSCP::={&ref 5, &ReqParam StoreForward}
flowType REQSCP::={&ref 7, &ReqParam FlowTypeID}
commDistance REQSCP::={&ref 9, &ReqParam CommDistance}
directivity REQSCP::={&ref 11, &ReqParam Directivity}
multiHop REQSCP::={&ref 13, &ReqParam MultiHop}
reduntOp REQSCP::={&ref 15, &ReqParam Resilience}
minThP REQSCP::={&ref 17, &ReqParam MinThP}
maxLat REQSCP::={&ref 19, &ReqParam MaxLat}
protocolReq REQSCP::={&ref 21, &ReqParam ProtocolReq}
dataConfidentiality REQSCP::={&ref 23, &ReqParam DataConfidentiality}
dataIntegrity REQSCP::={&ref 25, &ReqParam DataIntegrity}
nonReputability REQSCP::={&ref 27, &ReqParam ReqNonrepudiation}
dataAuthentication REQSCP::={&ref 29, &ReqParam DataAuthentication}
ContConnect::=SEQUENCE{
duration TimDurationValue,
interrupt Logic -- true: session may be interrupted
} -- three octets in PER
TimDurationValue::=SEQUENCE {
value INTEGER(0..1023), -- valid parameter number (10 bits in PER)
unit TimeUnit
} -- 16 bits in PER
NxRepeat::=SEQUENCE{
repeat INTEGER(0..255), -- 0 no repetition, 255 no stop until flow ends
interval TimDurationValue
}
StoreForward::=TimDurationValue
CommDistance::=SEQUENCE{
minDistance INTEGER(0..65535), -- m
cost CostObjective
}
MultiHop::=SEQUENCE{
hops INTEGER(0..255),
cost CostObjective
}
Resilience::=CostObjective -- true: resilience requested
MinThP::=SEQUENCE{
minThP DataRate,
cost CostObjective
}
MaxLat::=SEQUENCE{
lat INTEGER{
unknown (0), -- unknown latency
any (1), -- any latency - not further specified
ms (2), -- response within less than 10 ms
ms10 (4), -- response within less than 100 ms
ms100 (8), -- response within less than 1 second
sec (16), -- response within less than 10 seconds
sec10 (32), -- response within less than 1 minute
min (64), -- response within less than 10 minutes
min10 (128) -- response within less than 1 hour
} (0..255),
cost CostObjective
}
ProtocolReq::=ITSprotocolStackID -- this type must be octet aligned.
DataConfidentiality::=ConfValue
DataIntegrity::=ConfValue
ReqNonrepudiation::=ConfValue
DataAuthentication::=ConfValue
-- Confirmation requirements and objectives requested
ReqConf-SCP REQSCPCONF::={logChannelConf | destTypeConf | destDomainConf | maxAPDUConf | contConnectConf | nxRepeatConf | storeForwardConf | flowTypeConf | commDistanceConf | directivityConf | multiHopConf | reduntOpConf | minThPConf | maxLatConf | protocolReqConf | dataConfidentialityConf | dataIntegrityConf | nonReputabilityConf | dataAuthenticationConf, ...}
-- Mandatory (only odd ref numbers): ok (TRUE) / nok or possible values
logChannelConf REQSCPCONF::={&ref 0, &ReqConfParam Logic}
destTypeConf REQSCPCONF::={&ref 2, &ReqConfParam Logic}
destDomainConf REQSCPCONF::={&ref 4, &ReqConfParam Logic}
maxAPDUConf REQSCPCONF::={&ref 6, &ReqConfParam MaxADU}
-- Optional (only even ref numbers): ok (TRUE) / nok or possible values
contConnectConf REQSCPCONF::={&ref 1, &ReqConfParam ContConnect}
nxRepeatConf REQSCPCONF::={&ref 3, &ReqConfParam Logic}
storeForwardConf REQSCPCONF::={&ref 5, &ReqConfParam Logic}
flowTypeConf REQSCPCONF::={&ref 7, &ReqConfParam Logic}
commDistanceConf REQSCPCONF::={&ref 9, &ReqConfParam CommDistance}
directivityConf REQSCPCONF::={&ref 11, &ReqConfParam Directivity}
multiHopConf REQSCPCONF::={&ref 13, &ReqConfParam Logic}
reduntOpConf REQSCPCONF::={&ref 15, &ReqConfParam Logic}
minThPConf REQSCPCONF::={&ref 17, &ReqConfParam MinThP}
maxLatConf REQSCPCONF::={&ref 19, &ReqConfParam MaxLat}
protocolReqConf REQSCPCONF::={&ref 21, &ReqConfParam Logic}
dataConfidentialityConf REQSCPCONF::={&ref 23, &ReqConfParam Logic}
dataIntegrityConf REQSCPCONF::={&ref 25, &ReqConfParam Logic}
nonReputabilityConf REQSCPCONF::={&ref 27, &ReqConfParam Logic}
dataAuthenticationConf REQSCPCONF::={&ref 29, &ReqConfParam Logic}
-- Policies
POLICYC::=CLASS {
&ref INTEGER(0..255),
&PolParam
}
Policies::=SEQUENCE OF SEQUENCE{
refNo POLICYC.&ref({Policy}),
param POLICYC.&PolParam({Policy}{@refNo})
}
Policy POLICYC::={mediumCost | locPrivacy | anonymity, ...}
mediumCost POLICYC::={&ref 0, &PolParam MediumCost}
locPrivacy POLICYC::={&ref 1, &PolParam LocPrivacy}
anonymity POLICYC::={&ref 2, &PolParam Anonymity}
-- Financial policies
MediumCost::=SEQUENCE{
fill BIT STRING (SIZE(2)), -- bits set to zero
costClass CostClass, -- uses 3 bits
costAmount CostAmount OPTIONAL,
timeUnit CostTimeUnit OPTIONAL,
amountUnit CostAmountUnit OPTIONAL
}
CostClass::=INTEGER{
tempUnavailable (0),
noCharge (1),
flatRate (2),
perTime (3),
perAmount (4),
perConnection (5)
} (0..7)
CostAmount::=SEQUENCE{
currency INTEGER(0..1023), -- ISO 4217 three digit numeric code
value CostValue
} -- presented in 4 octets
CostValue::=SEQUENCE{
main INTEGER(0..4095), -- in currency unit
fraction INTEGER(0..1023) -- in 1/1000 of currency unit
}
CostTimeUnit::=SEQUENCE{
value INTEGER(0..1023), -- valid parameter number (10 bits in PER)
fill BIT STRING (SIZE(1)), -- set to zero, extends TimeUnit size.
unit TimeUnit -- presented in 5 bits
} -- 2 octets in PER
CostAmountUnit::=INTEGER{
tempUnavailable (0),
kbyte (1),
tkbyte (2),
hkbyte (4),
mbyte (8),
tmbyte (16),
hmbyte (32),
gbyte (64),
tgbyte (128)
} (0..255)
-- Security
LocPrivacy::=ConfValue
Anonymity::=ConfValue
-- MA-SAP / MF-SAP / MS-SAP functions
-- Some functions are used in these three SAPs
ITS-S-Appl-Reg::= SEQUENCE OF ITSSappCPReqReg -- used in 24102-3
ITS-S-Appl-RegConf::= SEQUENCE OF ITSSappCPReqConf -- used in 24102-3
ITS-S-Appl-RegFinal::=ITSSappCPFinal
-- General
Logic::=INTEGER{
false (0),
true (255)
} (0..255)
ConfValue::=INTEGER{
ok (0),
alternative (1),
nok (2)
} (0..255)
CostObjective::=INTEGER(0..255)
-- values
END
...@@ -199,7 +199,7 @@ module LibItsGeoNetworking_Functions { ...@@ -199,7 +199,7 @@ module LibItsGeoNetworking_Functions {
// Disconnect // Disconnect
f_disconnect4SelfOrClientSync(); f_disconnect4SelfOrClientSync();
} // end f_cf01Down } // End of function f_cf01Down
/** /**
* @desc This configuration features: * @desc This configuration features:
...@@ -270,7 +270,7 @@ module LibItsGeoNetworking_Functions { ...@@ -270,7 +270,7 @@ module LibItsGeoNetworking_Functions {
} }
} }
} // end f_cf02Up } // End of group f_cf02Up
/** /**
* @desc Deletes configuration cf02 * @desc Deletes configuration cf02
...@@ -293,7 +293,7 @@ module LibItsGeoNetworking_Functions { ...@@ -293,7 +293,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // end f_cf02Down } // End of group f_cf02Down
/** /**
* @desc This configuration features: * @desc This configuration features:
...@@ -364,7 +364,7 @@ module LibItsGeoNetworking_Functions { ...@@ -364,7 +364,7 @@ module LibItsGeoNetworking_Functions {
} }
} }
} // end f_cf03Up } // End of group f_cf03Up
/** /**
* @desc Deletes configuration cf03 * @desc Deletes configuration cf03
...@@ -387,7 +387,7 @@ module LibItsGeoNetworking_Functions { ...@@ -387,7 +387,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // end f_cf03Down } // End of group f_cf03Down
/** /**
* @desc This configuration features: * @desc This configuration features:
...@@ -460,7 +460,7 @@ module LibItsGeoNetworking_Functions { ...@@ -460,7 +460,7 @@ module LibItsGeoNetworking_Functions {
} }
} }
} // end f_cf04Up } // End of group f_cf04Up
/** /**
* @desc Deletes configuration cf04 * @desc Deletes configuration cf04
...@@ -483,7 +483,7 @@ module LibItsGeoNetworking_Functions { ...@@ -483,7 +483,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // end f_cf04Down } // End of group f_cf04Down
/** /**
* @desc This configuration features: * @desc This configuration features:
...@@ -574,7 +574,7 @@ module LibItsGeoNetworking_Functions { ...@@ -574,7 +574,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // end f_cf05Down } // End of group f_cf05Down
/** /**
* @desc This configuration features: * @desc This configuration features:
...@@ -666,7 +666,7 @@ module LibItsGeoNetworking_Functions { ...@@ -666,7 +666,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // end f_cf06Down } // End of group f_cf06Down
/** /**
* @desc This configuration features: * @desc This configuration features:
...@@ -757,7 +757,7 @@ module LibItsGeoNetworking_Functions { ...@@ -757,7 +757,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // end f_cf07Down } // End of group f_cf07Down
/** /**
* @desc Behavior function for initializing component's variables and tables * @desc Behavior function for initializing component's variables and tables
...@@ -778,7 +778,7 @@ module LibItsGeoNetworking_Functions { ...@@ -778,7 +778,7 @@ module LibItsGeoNetworking_Functions {
vc_localSeqNumber := f_getInitialSequenceNumber(); vc_localSeqNumber := f_getInitialSequenceNumber();
vc_multipleMessagesCount := f_getMessageCount(); vc_multipleMessagesCount := f_getMessageCount();
} // end f_initialiseComponent } // End of function f_initialiseComponent
/** /**
* @desc Makes the simulated ITS node behave as a neighbour of IUT * @desc Makes the simulated ITS node behave as a neighbour of IUT
...@@ -788,7 +788,7 @@ module LibItsGeoNetworking_Functions { ...@@ -788,7 +788,7 @@ module LibItsGeoNetworking_Functions {
vc_neighbourDefault := activate(a_neighbourDefault()); vc_neighbourDefault := activate(a_neighbourDefault());
f_acTriggerEvent(m_startBeaconing(m_beaconHeader(f_getPosition(vc_componentName)).beaconHeader)); f_acTriggerEvent(m_startBeaconing(m_beaconHeader(f_getPosition(vc_componentName)).beaconHeader));
f_sleepIgnoreDef(PX_NEIGHBOUR_DISCOVERY_DELAY); f_sleepIgnoreDef(PX_NEIGHBOUR_DISCOVERY_DELAY);
} // end f_startBeingNeighbour } // End of function f_startBeingNeighbour
/** /**
* @desc Makes the simulated ITS node behave as not being a neighbour of IUT * @desc Makes the simulated ITS node behave as not being a neighbour of IUT
...@@ -799,7 +799,7 @@ module LibItsGeoNetworking_Functions { ...@@ -799,7 +799,7 @@ module LibItsGeoNetworking_Functions {
if (PICS_GN_SECURITY == true) { if (PICS_GN_SECURITY == true) {
deactivate(vc_neighbourDefault); deactivate(vc_neighbourDefault);
} }
} // end f_stopBeingNeighbour } // End of function f_stopBeingNeighbour
/** /**
* @desc Initialise secure mode if required * @desc Initialise secure mode if required
...@@ -834,7 +834,7 @@ module LibItsGeoNetworking_Functions { ...@@ -834,7 +834,7 @@ module LibItsGeoNetworking_Functions {
} }
} // End of function f_uninitialiseSecuredMode() } // End of function f_uninitialiseSecuredMode()
} // end geoConfigurationFunctions } // End of group geoConfigurationFunctions
group componentFunctions { group componentFunctions {
/** /**
...@@ -1201,7 +1201,7 @@ module LibItsGeoNetworking_Functions { ...@@ -1201,7 +1201,7 @@ module LibItsGeoNetworking_Functions {
return fx_computeDistance(p_pointA.latitude, p_pointA.longitude, p_pointB.latitude, p_pointB.longitude); return fx_computeDistance(p_pointA.latitude, p_pointA.longitude, p_pointB.latitude, p_pointB.longitude);
} }
} // end geoPositionFunctions } // End of group geoPositionFunctions
group geoAltsteps { group geoAltsteps {
...@@ -1397,7 +1397,7 @@ module LibItsGeoNetworking_Functions { ...@@ -1397,7 +1397,7 @@ module LibItsGeoNetworking_Functions {
[vc_gnDefaultActive] a_receiveGeoUnicast(?, ?) {} [vc_gnDefaultActive] a_receiveGeoUnicast(?, ?) {}
} }
} // end geoGeoUnicastAltsteps } // End of group geoGeoUnicastAltsteps
group geoGeoBroadcastAltsteps { group geoGeoBroadcastAltsteps {
...@@ -1466,7 +1466,7 @@ module LibItsGeoNetworking_Functions { ...@@ -1466,7 +1466,7 @@ module LibItsGeoNetworking_Functions {
} }
} }
} // end geoGeoBroadcastAltsteps } // End of group geoGeoBroadcastAltsteps
group geoGeoAnycastAltsteps { group geoGeoAnycastAltsteps {
...@@ -1537,7 +1537,7 @@ module LibItsGeoNetworking_Functions { ...@@ -1537,7 +1537,7 @@ module LibItsGeoNetworking_Functions {
} }
} }
} // end geoGeoAnycastAltsteps } // End of group geoGeoAnycastAltsteps
group geoLocationServiceAltsteps { group geoLocationServiceAltsteps {
...@@ -1610,10 +1610,10 @@ module LibItsGeoNetworking_Functions { ...@@ -1610,10 +1610,10 @@ module LibItsGeoNetworking_Functions {
} }
} }
} // end geoLocationServiceAltsteps } // End of group geoLocationServiceAltsteps
} // end geoAltsteps } // End of group geoAltsteps
group preambles { group preambles {
...@@ -1739,7 +1739,7 @@ module LibItsGeoNetworking_Functions { ...@@ -1739,7 +1739,7 @@ module LibItsGeoNetworking_Functions {
return v_ret; return v_ret;
} }
} // end preambles } // End of group preambles
group postambles { group postambles {
...@@ -1758,7 +1758,7 @@ module LibItsGeoNetworking_Functions { ...@@ -1758,7 +1758,7 @@ module LibItsGeoNetworking_Functions {
f_poDefault(); f_poDefault();
} }
} // end postambles } // End of group postambles
group adapterControl { group adapterControl {
...@@ -1918,7 +1918,7 @@ module LibItsGeoNetworking_Functions { ...@@ -1918,7 +1918,7 @@ module LibItsGeoNetworking_Functions {
if (PX_GNSS_SCENARIO_SUPPORT==true) { if (PX_GNSS_SCENARIO_SUPPORT==true) {
f_acTriggerGnssEvent(m_loadScenario(p_scenario)); f_acTriggerGnssEvent(m_loadScenario(p_scenario));
} }
} // end f_acLoadScenario } // End of function f_acLoadScenario
/** /**
* @desc Starts a loaded scenario * @desc Starts a loaded scenario
...@@ -1929,7 +1929,7 @@ module LibItsGeoNetworking_Functions { ...@@ -1929,7 +1929,7 @@ module LibItsGeoNetworking_Functions {
f_acTriggerGnssEvent(m_startScenario); f_acTriggerGnssEvent(m_startScenario);
vc_scenarioStarted := true; vc_scenarioStarted := true;
} }
} // end f_acStartScenario } // End of function f_acStartScenario
/** /**
* @desc Stops a loaded scenario * @desc Stops a loaded scenario
...@@ -1940,7 +1940,7 @@ module LibItsGeoNetworking_Functions { ...@@ -1940,7 +1940,7 @@ module LibItsGeoNetworking_Functions {
f_acTriggerGnssEvent(m_stopScenario); f_acTriggerGnssEvent(m_stopScenario);
vc_scenarioStarted := false; vc_scenarioStarted := false;
} }
} // end f_acStopScenario } // End of function f_acStopScenario
function f_acAwaitTimeInRunningScenario(integer p_time) runs on ItsBaseGeoNetworking return FncRetCode { function f_acAwaitTimeInRunningScenario(integer p_time) runs on ItsBaseGeoNetworking return FncRetCode {
var FncRetCode v_ret := e_success; var FncRetCode v_ret := e_success;
...@@ -1966,9 +1966,9 @@ module LibItsGeoNetworking_Functions { ...@@ -1966,9 +1966,9 @@ module LibItsGeoNetworking_Functions {
} }
return v_ret; return v_ret;
} // end f_acAwaitTimeInRunningScenario } // End of function f_acAwaitTimeInRunningScenario
} // end adapterControl } // End of group adapterControl
group commonFunctions { group commonFunctions {
...@@ -2009,7 +2009,7 @@ module LibItsGeoNetworking_Functions { ...@@ -2009,7 +2009,7 @@ module LibItsGeoNetworking_Functions {
return v_timestamp; return v_timestamp;
} }
} // end commonFunctions } // End of group commonFunctions
group testerFunctions { group testerFunctions {
...@@ -2120,7 +2120,7 @@ module LibItsGeoNetworking_Functions { ...@@ -2120,7 +2120,7 @@ module LibItsGeoNetworking_Functions {
return PX_MESSAGE_COUNT; return PX_MESSAGE_COUNT;
} }
} // end testerFunctions } // End of group testerFunctions
group iutFunctions { group iutFunctions {
...@@ -2155,19 +2155,19 @@ module LibItsGeoNetworking_Functions { ...@@ -2155,19 +2155,19 @@ module LibItsGeoNetworking_Functions {
/** /**
* @desc Gets the GeoUnicast forwarding algorithm * @desc Gets the GeoUnicast forwarding algorithm
* @return IUT's GeoUnicast forwarding algorithm * @return IUT's GeoUnicast forwarding algorithm
* @see PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM * @see PICS_GN_NON_AREA_FORWARDING_ALGORITHM
*/ */
function f_getGeoUnicastForwardingAlgorithm() return GeoUnicastForwardingAlgorithm { function f_getNonAreaForwardingAlgorithm() return NonAreaForwardingAlgorithm {
return PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM; return PICS_GN_NON_AREA_FORWARDING_ALGORITHM;
} }
/** /**
* @desc Gets the GeoBroadcast forwarding algorithm * @desc Gets the GeoBroadcast forwarding algorithm
* @return IUT's GeoBroadcast forwarding algorithm * @return IUT's GeoBroadcast forwarding algorithm
* @see PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM * @see PICS_GN_AREA_FORWARDING_ALGORITHM
*/ */
function f_getGeoBroadcastForwardingAlgorithm() return GeoBroadcastForwardingAlgorithm { function f_getAreaForwardingAlgorithm() return AreaForwardingAlgorithm {
return PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM; return PICS_GN_AREA_FORWARDING_ALGORITHM;
} }
/** /**
...@@ -2288,7 +2288,7 @@ module LibItsGeoNetworking_Functions { ...@@ -2288,7 +2288,7 @@ module LibItsGeoNetworking_Functions {
var integer v_itsGnLocationServicePacketBufferSize := PICS_GN_LOCATION_SERVICE_PACKET_BUFFER_SIZE; var integer v_itsGnLocationServicePacketBufferSize := PICS_GN_LOCATION_SERVICE_PACKET_BUFFER_SIZE;
return v_itsGnLocationServicePacketBufferSize; return v_itsGnLocationServicePacketBufferSize;
} // end f_getLsPacketBufferSize } // End of function f_getLsPacketBufferSize
/** /**
* @desc Gets the UC forwarding packet buffer size. * @desc Gets the UC forwarding packet buffer size.
...@@ -2299,7 +2299,7 @@ module LibItsGeoNetworking_Functions { ...@@ -2299,7 +2299,7 @@ module LibItsGeoNetworking_Functions {
var integer v_itsGnUcForwardingPacketBufferSize := PICS_GN_UC_FORWARDING_PACKET_BUFFER_SIZE; var integer v_itsGnUcForwardingPacketBufferSize := PICS_GN_UC_FORWARDING_PACKET_BUFFER_SIZE;
return v_itsGnUcForwardingPacketBufferSize * 1024; return v_itsGnUcForwardingPacketBufferSize * 1024;
} // end f_getUcForwardingPacketBufferSize } // End of function f_getUcForwardingPacketBufferSize
/** /**
* @desc Gets the BC forwarding packet buffer size. * @desc Gets the BC forwarding packet buffer size.
...@@ -2310,7 +2310,7 @@ module LibItsGeoNetworking_Functions { ...@@ -2310,7 +2310,7 @@ module LibItsGeoNetworking_Functions {
var integer v_itsGnBcForwardingPacketBufferSize := PICS_GN_BC_FORWARDING_PACKET_BUFFER_SIZE; var integer v_itsGnBcForwardingPacketBufferSize := PICS_GN_BC_FORWARDING_PACKET_BUFFER_SIZE;
return v_itsGnBcForwardingPacketBufferSize * 1024; return v_itsGnBcForwardingPacketBufferSize * 1024;
} // end f_getBcForwardingPacketBufferSize } // End of function f_getBcForwardingPacketBufferSize
/** /**
* @desc Gets the maximum lifetime of a packet. * @desc Gets the maximum lifetime of a packet.
...@@ -2392,7 +2392,7 @@ module LibItsGeoNetworking_Functions { ...@@ -2392,7 +2392,7 @@ module LibItsGeoNetworking_Functions {
var float v_itsGnLifetimeLocTableEntry := int2float(PICS_GN_LIFETIME_LOC_TE); var float v_itsGnLifetimeLocTableEntry := int2float(PICS_GN_LIFETIME_LOC_TE);
return v_itsGnLifetimeLocTableEntry; return v_itsGnLifetimeLocTableEntry;
} // end f_getLifetimeLocTableEntry } // End of function f_getLifetimeLocTableEntry
/** /**
* @desc Gets the maximum communication range for CBF algorithm * @desc Gets the maximum communication range for CBF algorithm
...@@ -2403,37 +2403,25 @@ module LibItsGeoNetworking_Functions { ...@@ -2403,37 +2403,25 @@ module LibItsGeoNetworking_Functions {
var integer v_maxCommunicationRange := PICS_GN_DEFAULT_MAX_COMMUNICATION_RANGE; var integer v_maxCommunicationRange := PICS_GN_DEFAULT_MAX_COMMUNICATION_RANGE;
return v_maxCommunicationRange; return v_maxCommunicationRange;
} // end f_getCbfMaxCommunicationRange } // End of function f_getCbfMaxCommunicationRange
function f_getGeoUnicastCbfMaxTime() return integer { function f_getCbfMaxTime() return integer {
var integer v_cbfMaxTime := PICS_GN_GEOUNICAST_CBF_MAX_TIME; var integer v_cbfMaxTime := PICS_GN_CBF_MAX_TIME;
return v_cbfMaxTime; return v_cbfMaxTime;
} // end f_getGeoUnicastCbfMaxTime } // End of function f_getCbfMaxTime
function f_getGeoUnicastCbfMinTime() return integer { function f_getCbfMinTime() return integer {
var integer v_cbfMinTime := PICS_GN_GEOUNICAST_CBF_MIN_TIME; var integer v_cbfMinTime := PICS_GN_CBF_MIN_TIME;
return v_cbfMinTime; return v_cbfMinTime;
} // end f_getGeoUnicastCbfMinTime } // End of function f_getCbfMinTime
function f_getGeoBroadcastCbfMaxTime() return integer {
var integer v_cbfMaxTime := PICS_GN_GEOBROADCAST_CBF_MAX_TIME;
return v_cbfMaxTime;
} // end f_getGeoBroadcastCbfMaxTime
function f_getGeoBroadcastCbfMinTime() return integer {
var integer v_cbfMinTime := PICS_GN_GEOBROADCAST_CBF_MIN_TIME;
return v_cbfMinTime;
} // end f_getGeoBroadcastCbfMinTime
function f_getGnMaxAreaSize() return float { function f_getGnMaxAreaSize() return float {
var float v_maxAreaSize := PICS_GN_MAX_GEO_AREA_SIZE; var float v_maxAreaSize := PICS_GN_MAX_GEO_AREA_SIZE;
return v_maxAreaSize; return v_maxAreaSize;
} // end f_getGnMaxAreaSize } // End of function f_getGnMaxAreaSize
function f_getAdvancedGbcForwardingMaxCounter() return integer { function f_getAdvancedGbcForwardingMaxCounter() return integer {
var integer v_maxCounter := PICS_GN_ADVANCED_BC_FORWARDING_MAX_COUNTER; var integer v_maxCounter := PICS_GN_ADVANCED_BC_FORWARDING_MAX_COUNTER;
...@@ -2450,7 +2438,7 @@ module LibItsGeoNetworking_Functions { ...@@ -2450,7 +2438,7 @@ module LibItsGeoNetworking_Functions {
f_acStartBeaconingMultipleNeighbour(v_nrNeighbour); f_acStartBeaconingMultipleNeighbour(v_nrNeighbour);
} // end f_setNrNeighbourLocTableDefault } // End of function f_setNrNeighbourLocTableDefault
/** /**
* @desc Set the number of neighbour in the Location Table (medium). * @desc Set the number of neighbour in the Location Table (medium).
...@@ -2462,7 +2450,7 @@ module LibItsGeoNetworking_Functions { ...@@ -2462,7 +2450,7 @@ module LibItsGeoNetworking_Functions {
f_acStartBeaconingMultipleNeighbour(v_nrNeighbour); f_acStartBeaconingMultipleNeighbour(v_nrNeighbour);
} // end f_setNrNeighbourLocTableMedium } // End of function f_setNrNeighbourLocTableMedium
/** /**
* @desc Set the number of neighbour in the Location Table (maximum). * @desc Set the number of neighbour in the Location Table (maximum).
...@@ -2474,9 +2462,9 @@ module LibItsGeoNetworking_Functions { ...@@ -2474,9 +2462,9 @@ module LibItsGeoNetworking_Functions {
f_acStartBeaconingMultipleNeighbour(v_nrNeighbour); f_acStartBeaconingMultipleNeighbour(v_nrNeighbour);
} // end f_setNrNeighbourLocTableMaximum } // End of function f_setNrNeighbourLocTableMaximum
} // end iutFunctions } // End of group iutFunctions
group posVectorFunctions { group posVectorFunctions {
...@@ -2539,7 +2527,7 @@ module LibItsGeoNetworking_Functions { ...@@ -2539,7 +2527,7 @@ module LibItsGeoNetworking_Functions {
return v_result; return v_result;
} }
} // end posVectorFunctions } // End of group posVectorFunctions
group externalFunctions { group externalFunctions {
...@@ -2594,7 +2582,7 @@ module LibItsGeoNetworking_Functions { ...@@ -2594,7 +2582,7 @@ module LibItsGeoNetworking_Functions {
) { ) {
// Nothing to do // Nothing to do
} }
} // End of altstep a_securedMessageWithCertificate } // End of 'altstep' a_securedMessageWithCertificate
/** /**
* @desc Receive GN message with security containing digest as a signer info * @desc Receive GN message with security containing digest as a signer info
...@@ -2652,9 +2640,9 @@ module LibItsGeoNetworking_Functions { ...@@ -2652,9 +2640,9 @@ module LibItsGeoNetworking_Functions {
* @desc Ask for the certificate chain and wait for GN message with security containing certificate chain as a signer info * @desc Ask for the certificate chain and wait for GN message with security containing certificate chain as a signer info
* @return the certificate chain used for sign received message * @return the certificate chain used for sign received message
*/ */
function f_askForCertificateChain (in template(value) octetstring p_CamPayload) function f_askForCertificateChain(
runs on ItsGeoNetworking in template(value) octetstring p_CamPayload
return boolean { ) runs on ItsGeoNetworking return boolean {
var EtsiTs103097Data v_recv; var EtsiTs103097Data v_recv;
var boolean v_ret := false; var boolean v_ret := false;
...@@ -2772,7 +2760,7 @@ module LibItsGeoNetworking_Functions { ...@@ -2772,7 +2760,7 @@ module LibItsGeoNetworking_Functions {
m_geoNwSecPdu( m_geoNwSecPdu(
v_gnNonSecuredPacket, v_gnNonSecuredPacket,
v_securedMessage v_securedMessage
) // End of template m_geoNwSecPdu )
)); // End of template m_geoNwReq_linkLayerBroadcast )); // End of template m_geoNwReq_linkLayerBroadcast
// Send Message // Send Message
...@@ -2834,11 +2822,12 @@ module LibItsGeoNetworking_Functions { ...@@ -2834,11 +2822,12 @@ module LibItsGeoNetworking_Functions {
* @param p_msg GeoNetworking packet * @param p_msg GeoNetworking packet
* @return the EtsiTs103097Data if any * @return the EtsiTs103097Data if any
*/ */
function f_getSecuredMessage(in GeoNetworkingPdu p_msg) function f_getSecuredMessage(
return EtsiTs103097Data { in GeoNetworkingPdu p_msg
) return EtsiTs103097Data {
return p_msg.gnPacket.securedMsg; return p_msg.gnPacket.securedMsg;
} }
} }
} // end LibItsGeoNetworking_Functions } // End of module LibItsGeoNetworking_Functions
/** /**
* @author ETSI / STF405 / STF449 / STF484 / STF517 * @author ETSI / STF405 / STF449 / STF484 / STF517
* @version $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/GeoNetworking/LibItsGeoNetworking_Pics.ttcn $ * @version $URL$
* $Id: LibItsGeoNetworking_Pics.ttcn,v 1.4 2018/05/31 15:57:10 dte Exp $ * $Id$
* @desc GeoNetworking PICS * @desc GeoNetworking PICS
* @copyright ETSI Copyright Notification * @copyright ETSI Copyright Notification
* No part may be reproduced except as authorized by written permission. * No part may be reproduced except as authorized by written permission.
...@@ -23,7 +23,7 @@ module LibItsGeoNetworking_Pics { ...@@ -23,7 +23,7 @@ module LibItsGeoNetworking_Pics {
/** /**
* @desc GeoNetworking address of the GeoAdhoc router * @desc GeoNetworking address of the GeoAdhoc router
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar GN_Address PICS_GN_LOCAL_GN_ADDR := { modulepar GN_Address PICS_GN_LOCAL_GN_ADDR := {
typeOfAddress := e_manual, typeOfAddress := e_manual,
...@@ -34,43 +34,43 @@ module LibItsGeoNetworking_Pics { ...@@ -34,43 +34,43 @@ module LibItsGeoNetworking_Pics {
/** /**
* @desc Is address manually configured * @desc Is address manually configured
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar GnAddressConfigurationMethod PICS_GN_LOCAL_ADDR_CONF_METHOD := e_anonymous; modulepar GnAddressConfigurationMethod PICS_GN_LOCAL_ADDR_CONF_METHOD := e_anonymous;
/** /**
* @desc Is the IUT mobile? * @desc Is the IUT mobile?
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_IS_MOBILE := true; modulepar boolean PICS_GN_IS_MOBILE := true;
/** /**
* @desc Minimum update frequency of local position vector (LPV) in ms * @desc Minimum update frequency of local position vector (LPV) in ms
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_MINIMUM_UPDATE_FREQUENCY_LPV := 1000; modulepar integer PICS_GN_MINIMUM_UPDATE_FREQUENCY_LPV := 1000;
/** /**
* @desc Maximum size of GN-SDU [bytes] * @desc Maximum size of GN-SDU [bytes]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_MAX_SDU_SIZE := 1398; modulepar integer PICS_GN_MAX_SDU_SIZE := 1398;
/** /**
* @desc GN_MAX: Maximum size of GeoNetworking header [bytes] * @desc GN_MAX: Maximum size of GeoNetworking header [bytes]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_MAX_GN_HEADER_SIZE := 88; modulepar integer PICS_GN_MAX_GN_HEADER_SIZE := 88;
/** /**
* @desc Lifetime of location table entry [s] * @desc Lifetime of location table entry [s]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_LIFETIME_LOC_TE := 20; modulepar integer PICS_GN_LIFETIME_LOC_TE := 20;
/** /**
* @desc GN Security support enabled or disabled * @desc GN Security support enabled or disabled
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
* @remark This PIC is different than PICS_IS_IUT_SECURED. * @remark This PIC is different than PICS_IS_IUT_SECURED.
* When set to true, this PIC indicates that the GeoNetworking is running with security ATS * When set to true, this PIC indicates that the GeoNetworking is running with security ATS
* UtInitialse shall indicate which certificate the IUT shall use * UtInitialse shall indicate which certificate the IUT shall use
...@@ -79,271 +79,289 @@ module LibItsGeoNetworking_Pics { ...@@ -79,271 +79,289 @@ module LibItsGeoNetworking_Pics {
/** /**
* @desc Maximum number of retransmissions of LS_REQUEST packets * @desc Maximum number of retransmissions of LS_REQUEST packets
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_LOCATION_SERVICE_MAX_RETRANS := 10; modulepar integer PICS_GN_LOCATION_SERVICE_MAX_RETRANS := 10;
/** /**
* @desc Duration of Location service retransmit timer [ms] * @desc Duration of Location service retransmit timer [ms]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_LOCATION_SERVICE_RETRANSMIT_TIMER := 1000; modulepar integer PICS_GN_LOCATION_SERVICE_RETRANSMIT_TIMER := 1000;
/** /**
* @desc Size of Location service packet buffer [Byte] * @desc Size of Location service packet buffer [Byte]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_LOCATION_SERVICE_PACKET_BUFFER_SIZE := 1024; modulepar integer PICS_GN_LOCATION_SERVICE_PACKET_BUFFER_SIZE := 1024;
/** /**
* @desc Duration of Beacon service retransmit timer [ms] * @desc Duration of Beacon service retransmit timer [ms]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_BEACON_SERVICE_RETRANSMIT_TIMER := 3000; modulepar integer PICS_GN_BEACON_SERVICE_RETRANSMIT_TIMER := 3000;
/** /**
* @desc Maximum beacon jitter [ms] * @desc Maximum beacon jitter [ms]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_BEACON_SERVICE_MAX_JITTER := 750; modulepar integer PICS_GN_BEACON_SERVICE_MAX_JITTER := 750;
/** /**
* @desc Default hop limit indicating the maximum number of hops a packet travels * @desc Default hop limit indicating the maximum number of hops a packet travels
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar UInt8 PICS_GN_DEFAULT_HOP_LIMIT := 10; modulepar UInt8 PICS_GN_DEFAULT_HOP_LIMIT := 10;
/** /**
* @desc Upper limit of the maximum lifetime [s] * @desc Upper limit of the maximum lifetime [s]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_MAX_PACKET_LIFETIME := 600; modulepar integer PICS_GN_MAX_PACKET_LIFETIME := 600;
/** /**
* @desc Lower limit of the packet repetition interval [km^2] * @desc Lower limit of the packet repetition interval [km^2]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar float PICS_GN_MAX_GEO_AREA_SIZE:= 10.0; modulepar float PICS_GN_MAX_GEO_AREA_SIZE:= 10.0;
/** /**
* @desc Lower limit of the packet repetition interval [ms] * @desc Lower limit of the packet repetition interval [ms]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_MIN_PACKET_REPETITION_INTERVAL := 100; modulepar integer PICS_GN_MIN_PACKET_REPETITION_INTERVAL := 100;
/** /**
* @desc Default GeoUnicast forwarding algorithm * @desc Default NON-AREA forwarding algorithm
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar GeoUnicastForwardingAlgorithm PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM := e_greedy; modulepar NonAreaForwardingAlgorithm PICS_GN_NON_AREA_FORWARDING_ALGORITHM := e_greedy;
/** /**
* @desc Default GeoBroadcast forwarding algorithm * @desc Default AREA forwarding algorithm
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar GeoBroadcastForwardingAlgorithm PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM := e_advanced; modulepar AreaForwardingAlgorithm PICS_GN_AREA_FORWARDING_ALGORITHM := e_cbf;
/** /**
* @desc Minimum duration a GUC shall be buffered in the CBF packet buffer [ms] * @desc Minimum duration a packet shall be buffered in the CBF packet buffer [ms]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_GEOUNICAST_CBF_MIN_TIME := 1; modulepar integer PICS_GN_CBF_MIN_TIME := 1;
/** /**
* @desc Maximum duration a GUC shall be buffered in the CBF packet buffer [ms] * @desc Maximum duration a packet shall be buffered in the CBF packet buffer [ms]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_GEOUNICAST_CBF_MAX_TIME := 100; modulepar integer PICS_GN_CBF_MAX_TIME := 100;
/**
* @desc Minimum duration a GBC shall be buffered in the CBF packet buffer [ms]
* @see ETSI TS 102 871-2 Table 4
*/
modulepar integer PICS_GN_GEOBROADCAST_CBF_MIN_TIME := 1;
/**
* @desc Maximum duration a GBC shall be buffered in the CBF packet buffer [ms]
* @see ETSI TS 102 871-2 Table 4
*/
modulepar integer PICS_GN_GEOBROADCAST_CBF_MAX_TIME := 100;
/** /**
* @desc Default theoretical maximum communication range [m] * @desc Default theoretical maximum communication range [m]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_DEFAULT_MAX_COMMUNICATION_RANGE := 1000; modulepar integer PICS_GN_DEFAULT_MAX_COMMUNICATION_RANGE := 1000;
/** /**
* @desc Size of UC forwarding packet buffer [Kbytes] * @desc Size of UC forwarding packet buffer [Kbytes]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_UC_FORWARDING_PACKET_BUFFER_SIZE := 256; modulepar integer PICS_GN_UC_FORWARDING_PACKET_BUFFER_SIZE := 256;
/** /**
* @desc Size of BC forwarding packet buffer [Kbytes] * @desc Size of BC forwarding packet buffer [Kbytes]
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar integer PICS_GN_BC_FORWARDING_PACKET_BUFFER_SIZE := 1024; modulepar integer PICS_GN_BC_FORWARDING_PACKET_BUFFER_SIZE := 1024;
/** /**
* @desc Support for Basic header * @desc Support for Basic header
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_BASIC_HEADER := true; modulepar boolean PICS_GN_BASIC_HEADER := true;
/** /**
* @desc Support for Common header * @desc Support for Common header
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_COMMON_HEADER := true; modulepar boolean PICS_GN_COMMON_HEADER := true;
/** /**
* @desc Support for Beacon source operations * @desc Support for Beacon source operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_BEACON_SRC := true; modulepar boolean PICS_GN_BEACON_SRC := true;
/** /**
* @desc Support for Beacon destination operations * @desc Support for Beacon destination operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_BEACON_DST := true; modulepar boolean PICS_GN_BEACON_DST := true;
/**
* @desc Support for GUC operations
* @see ETSI TS 102 871-1 Table 1
*/
modulepar boolean PICS_GN_GUC := true;
/** /**
* @desc Support for GUC source operations * @desc Support for GUC source operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_GUC_SRC := true; modulepar boolean PICS_GN_GUC_SRC := true;
/** /**
* @desc Support for GUC destination operations * @desc Support for GUC destination operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_GUC_DST := true; modulepar boolean PICS_GN_GUC_DST := true;
/** /**
* @desc Support for GUC forwarding * @desc Support for GUC forwarding
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_GUC_FWD := true; modulepar boolean PICS_GN_GUC_FWD := true;
/**
* @desc Support for GBC operations
* @see ETSI TS 102 871-1 Table 1
*/
modulepar boolean PICS_GN_GBC := true;
/** /**
* @desc Support for GBC source operations * @desc Support for GBC source operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_GBC_SRC := true; modulepar boolean PICS_GN_GBC_SRC := true;
/** /**
* @desc Support for GBC destination operations * @desc Support for GBC destination operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_GBC_DST := true; modulepar boolean PICS_GN_GBC_DST := true;
/** /**
* @desc Support for GBC forwarding * @desc Support for GBC forwarding
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_GBC_FWD := true; modulepar boolean PICS_GN_GBC_FWD := true;
/**
* @desc Support for GAC operations
* @see ETSI TS 102 871-1 Table 1
*/
modulepar boolean PICS_GN_GAC := true;
/** /**
* @desc Support for GAC source operations * @desc Support for GAC source operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_GAC_SRC := true; modulepar boolean PICS_GN_GAC_SRC := true;
/** /**
* @desc Support for GAC destination operations * @desc Support for GAC destination operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_GAC_DST := true; modulepar boolean PICS_GN_GAC_DST := true;
/** /**
* @desc Support for GAC forwarding * @desc Support for GAC forwarding
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_GAC_FWD := true; modulepar boolean PICS_GN_GAC_FWD := true;
/**
* @desc Support for SHB operations
* @see ETSI TS 102 871-1 Table 1
*/
modulepar boolean PICS_GN_SHB := true;
/** /**
* @desc Support for SHB source operations * @desc Support for SHB source operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_SHB_SRC := true; modulepar boolean PICS_GN_SHB_SRC := true;
/** /**
* @desc Support for SHB destination operations * @desc Support for SHB destination operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_SHB_DST := true; modulepar boolean PICS_GN_SHB_DST := true;
/**
* @desc Support for TSB operations
* @see ETSI TS 102 871-1 Table 1
*/
modulepar boolean PICS_GN_TSB := true;
/** /**
* @desc Support for TSB source operations * @desc Support for TSB source operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_TSB_SRC := true; modulepar boolean PICS_GN_TSB_SRC := true;
/** /**
* @desc Support for TSB destination operations * @desc Support for TSB destination operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_TSB_DST := true; modulepar boolean PICS_GN_TSB_DST := true;
/** /**
* @desc Support for TSB forwarding * @desc Support for TSB forwarding
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_TSB_FWD := true; modulepar boolean PICS_GN_TSB_FWD := true;
/** /**
* @desc Support for LS Request source operations * @desc Support for LS Request source operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_LS_REQ_SRC := true; modulepar boolean PICS_GN_LS_REQ_SRC := true;
/** /**
* @desc Support for LS Request retransmission * @desc Support for LS Request retransmission
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_LS_REQ_RETRANSMISSION := true; modulepar boolean PICS_GN_LS_REQ_RETRANSMISSION := true;
/** /**
* @desc Support for LS Request destination operations * @desc Support for LS Request destination operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_LS_REQ_DST := true; modulepar boolean PICS_GN_LS_REQ_DST := true;
/** /**
* @desc Support for LS Reply destination operations * @desc Support for LS Reply destination operations
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_LS_REP_DST := true; modulepar boolean PICS_GN_LS_REP_DST := true;
/** /**
* @desc Support for LS forwarding * @desc Support for LS forwarding
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_LS_FWD := true; modulepar boolean PICS_GN_LS_FWD := true;
/** /**
* @desc Support for automatic address * @desc Support for automatic address
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_ADDR_AUTO := true; modulepar boolean PICS_GN_ADDR_AUTO := true;
/** /**
* @desc Support for Managed address * @desc Support for Managed address
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_ADDR_MANAGED := true; modulepar boolean PICS_GN_ADDR_MANAGED := true;
/** /**
* @desc Support for Anonymous address * @desc Support for Anonymous address
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_ADDR_ANONYMOUS := true; modulepar boolean PICS_GN_ADDR_ANONYMOUS := true;
/** /**
* @desc Support for DAD * @desc Support for DAD
* @see ETSI TS 102 871-2 Table 4 * @see ETSI TS 102 871-1 Table 1
*/ */
modulepar boolean PICS_GN_DAD := true; modulepar boolean PICS_GN_DAD := true;
...@@ -368,4 +386,4 @@ module LibItsGeoNetworking_Pics { ...@@ -368,4 +386,4 @@ module LibItsGeoNetworking_Pics {
*/ */
modulepar boolean PICS_IS_IUT_SECURED := false; modulepar boolean PICS_IS_IUT_SECURED := false;
} // end LibItsGeoNetworking_Pics } // End of module LibItsGeoNetworking_Pics
\ No newline at end of file
...@@ -881,7 +881,7 @@ module LibItsGeoNetworking_TypesAndValues { ...@@ -881,7 +881,7 @@ module LibItsGeoNetworking_TypesAndValues {
/** /**
* @desc The GeoUnicast forwarding algorithm. * @desc The GeoUnicast forwarding algorithm.
*/ */
type enumerated GeoUnicastForwardingAlgorithm { type enumerated NonAreaForwardingAlgorithm {
e_unspecified(0), e_unspecified(0),
e_greedy(1), e_greedy(1),
e_cbf(2) e_cbf(2)
...@@ -890,7 +890,7 @@ module LibItsGeoNetworking_TypesAndValues { ...@@ -890,7 +890,7 @@ module LibItsGeoNetworking_TypesAndValues {
/** /**
* @desc The GeoBroadcast forwarding algorithm. * @desc The GeoBroadcast forwarding algorithm.
*/ */
type enumerated GeoBroadcastForwardingAlgorithm { type enumerated AreaForwardingAlgorithm {
e_unspecified(0), e_unspecified(0),
e_simple(1), e_simple(1),
e_cbf(2), e_cbf(2),
......