Commit eba3a01e authored by Jason Graham's avatar Jason Graham
Browse files

Update 3 files

- /103280/TS_103_280_Location.asn1
- /103280/TS_103_280.asn1
- /locationStructure/Location.asn1
parent aa676932
Loading
Loading
Loading
Loading
Loading
+95 −1
Original line number Diff line number Diff line
@@ -137,7 +137,12 @@ GMLShape ::= CHOICE
{
    point       [0] GeoPoint,
    sphere      [1] GeoSphere,
    xyEllipsoid [2] XYEllipsoid
    xyEllipsoid [2] XYEllipsoid,
    polygon     [3] GMLPolygon,
    circle      [4] GMLCircle,
    ellipse     [5] GMLEllipse,
    arcBand     [6] GMLArcBand,
    prism       [7] GMLPrism    
}

GeoPoint ::= CHOICE
@@ -159,6 +164,58 @@ XYEllipsoid ::= SEQUENCE
    uncertaintyAltitude  [3] UncertaintyMeters OPTIONAL
}

-- for all types currently called GMLTYPE, we need to decide what version to support here (GML, GML profile for PIDF-LO, 29.572, 33.108)
-- for simplicity of the structure, unless otherwise indicated I stole 29.572 and adapted it to things we already have defined
-- we could adjust the name accordingly or make Polygon a choice of FORMATS
-- it is also worth noting that GML supports doubles instead of integers for both uncertainty, altitude and angles, should we define our defs the same way


-- GMLPolygons support interior borders as well. Do we thing we need to support this?
GMLPolygon ::= SEQUENCE
{
    pointList   [1] SEQUENCE (SIZE (3..15)) OF GeoPoint
}

GMLCircle ::= SEQUENCE
{
    centerPoint  [1] GeoPoint,
    radiusMeters [2] UncertaintyMeters
}

GMLEllipse ::= SEQUENCE
{
    centerPoint  [1] GeoPoint,
    semiMajor    [2] UncertaintyMeters,
    semiMinor    [3] UncertaintyMeters,
    orientation  [4] AngleDecimalDegrees
}

-- This is not 29.572, but is closer to GML 
GMLArcBand ::= SEQUENCE
{
    centerPoint  [1] GeoPoint,
    innerRadius  [2] UncertaintyMeters,
    outerRadius  [3] UncertaintyMeters,
    startAngle   [4] AngleDecimalDegrees,
    openingAngle [5] AngleDecimalDegrees
}

-- This is not 29.572 but is closer to the GML profile for PIDF-LO
GMLPIDFProfileEllipsoid ::= SEQUENCE
{
    centerPoint  [1] GeoPoint,
    semiMajor    [2] UncertaintyMeters,
    semiMinor    [3] UncertaintyMeters,
    verticalAxis [4] UncertaintyMeters
    orientation  [5] AngleDecimalDegrees
}

GMLPrism ::= SEQUENCE
{
    pointList [1] SEQUENCE (SIZE (3..15)) OF GeoPoint,
    height    [2] UncertaintyMeters
}

FixMode ::= ENUMERATED
{
    unknown(0),
@@ -169,4 +226,41 @@ FixMode ::= ENUMERATED

MACAddress ::= OCTET STRING (SIZE(6))

-- This was taken from 33.128, which copied 29.572. We may want to take the format from one of the other standards.
CivicAddress ::= SEQUENCE
{
    country                             [1] UTF8String,
    a1                                  [2] UTF8String OPTIONAL,
    a2                                  [3] UTF8String OPTIONAL,
    a3                                  [4] UTF8String OPTIONAL,
    a4                                  [5] UTF8String OPTIONAL,
    a5                                  [6] UTF8String OPTIONAL,
    a6                                  [7] UTF8String OPTIONAL,
    prd                                 [8] UTF8String OPTIONAL,
    pod                                 [9] UTF8String OPTIONAL,
    sts                                 [10] UTF8String OPTIONAL,
    hno                                 [11] UTF8String OPTIONAL,
    hns                                 [12] UTF8String OPTIONAL,
    lmk                                 [13] UTF8String OPTIONAL,
    loc                                 [14] UTF8String OPTIONAL,
    nam                                 [15] UTF8String OPTIONAL,
    pc                                  [16] UTF8String OPTIONAL,
    bld                                 [17] UTF8String OPTIONAL,
    unit                                [18] UTF8String OPTIONAL,
    flr                                 [19] UTF8String OPTIONAL,
    room                                [20] UTF8String OPTIONAL,
    plc                                 [21] UTF8String OPTIONAL,
    pcn                                 [22] UTF8String OPTIONAL,
    pobox                               [23] UTF8String OPTIONAL,
    addcode                             [24] UTF8String OPTIONAL,
    seat                                [25] UTF8String OPTIONAL,
    rd                                  [26] UTF8String OPTIONAL,
    rdsec                               [27] UTF8String OPTIONAL,
    rdbr                                [28] UTF8String OPTIONAL,
    rdsubbr                             [29] UTF8String OPTIONAL
}

-- This could also be REAL, but I think we avoid that for some reason
AngleDecimalDegrees ::= UTF8String

END
+0 −152
Original line number Diff line number Diff line
CommonLocations
{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) commonLocations(39) genHeader(1) version1(1)}

DEFINITIONS IMPLICIT TAGS EXTENSIBILITY IMPLIED ::=

BEGIN

IMPORTS
-- from ETSI TS 103 280 Common-Parameters
    WGS84CoordinateDecimal,
    WGS84LatitudeDecimal,
    WGS84LongitudeDecimal,
    MACAddress
        FROM Common-Parameters
        {itu-t(0) identified-organization(4) etsi(0) common-parameters(3280) version271(271)}


    -- previously from ETSI TS 101 671; now provided with this specification ETSI TS 102 232-1 [1]
    Location
        FROM HI2Operations
        {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) hi2(1) version17(18)}

    -- from 3GPP TS 33.108 [AA]
    Location
        FROM UmtsHI2Operations
        {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) hi2(1)}
            -- The relevant module (including the 3GPP release and version number) needs
            -- to be chosen when compiling the application.

    -- from 3GPP TS 33.108 [AA]
    EPSLocation
        FROM EpsHI2Operations
        {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) hi2eps(8)}
            -- The relevant module (including the 3GPP release and version number) needs
            -- to be chosen when compiling the application.

    -- from 3GPP TS 33.128 [46]
    Location
        FROM TS33128Payloads
        {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) ts33128(19)};
        -- The relevant module (including the 3GPP release and version number)
        -- needs to be chosen when compiling the application.

-- end of IMPORTS

-- =============================
-- Object Identifier Definitions
-- =============================

lawfulInterceptDomainId OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2)}

commonLocations OBJECT IDENTIFIER ::= {lawfulInterceptDomainId commonLocations(39) genHeader(1) version1(1)}

-- ====================
-- Top-level definition
-- ====================

Location ::= SEQUENCE
{
    locationInformation [1] LocationInformation,
    locationProvenance  [2] LocationProvenance
}

LocationInformation ::= CHOICE
{
    umtsHI2Location               [1] UmtsHI2Operations.Location,
    epsLocation                   [2] EpsHI2Operations.EPSLocation,
    wlanLocationAttributes        [3] WlanLocationAttributes,
    eTSI671HI2Location            [4] HI2Operations.Location,
    threeGPP33128Location         [5] TS33128Payloads.Location,
    wGS84CoordinateDecimal        [6] Common-Parameters.WGS84CoordinateDecimal,
    wGS84LatitudeDecimal          [7] Common-Parameters.WGS84LatitudeDecimal,
    wGS84LongitudeDecimal         [8] Common-Parameters.WGS84LongitudeDecimal,
    pIDF-LO                       [9] XMLType
}

LocationProvenance ::= SEQUENCE
{
    locationNetworkProvenance [1] LocationNetworkProvenance,
    locationLIProvenance      [2] LocationLIProvenance
}

LocationNetworkProvenance ::= SEQUENCE
{
    locationSource        [1] LocationSource,
    locationTimeStamps    [2] SEQUENCE (SIZE (1..MAX)) OF LocationTimestamp,
    additionalInformation [3] UTF8String OPTIONAL
}

LocationLIProvenance ::= SEQUENCE
{
    lIProvenance          [1] LIProvenance,
    sourceNF              [2] SourceNF,
    locationTimeStamps    [3] SEQUENCE (SIZE (1..MAX)) OF LocationTimestamp,
    additionalInformation [4] UTF8String OPTIONAL
}

LocationSource ::= ENUMERATED
{
    other(1),
    unknown(2),
    cPEOrClient(3),
    network(4)
}

LocationTimestamp ::= SEQUENCE
{
    timeStamp [1] GeneralizedTime,
    locationTimeStampQualifier [2] LocationTimeStampQualifier
}

LIProvenance ::= ENUMERATED
{
    other(1),
    observed(2),
    nFContext(3),
    nFLookup(4)
}

SourceNF ::= ENUMERATED
{
    aDMF(1),
    tF(2),
    pOI(3),
    mDF(4)
}

LocationTimeStampQualifier ::= ENUMERATED
{
    unknown(1),
    timeOfInterception(2),
    timeOfMediation(3),
    timeOfCalculation(4),
    timeLastObserved(5)
}

WlanLocationAttributes ::= SEQUENCE
{
    wlanAPMACAddress [1] Common-Parameters.MACAddress OPTIONAL
}

XMLType ::= SEQUENCE
{
    xMLNamespace [1] XMLNamespace,
    xMLValue     [2] XMLValue
}

XMLNamespace ::= UTF8String

XMLValue ::= UTF8String

END
+177 −0
Original line number Diff line number Diff line
CommonLocations
-- OID needs to be adjusted once the document for this structure is chosen
{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) commonLocations(39) genHeader(1) version1(1)}

DEFINITIONS IMPLICIT TAGS EXTENSIBILITY IMPLIED ::=

BEGIN

IMPORTS
-- from ETSI TS 103 280 Common-Parameters
    WGS84CoordinateDecimal,
    WGS84LatitudeDecimal,
    WGS84LongitudeDecimal,
    MACAddress,
    CivicAddress
        FROM Common-Parameters
        {itu-t(0) identified-organization(4) etsi(0) common-parameters(3280) version271(271)}


    -- previously from ETSI TS 101 671; now provided with ETSI TS 102 232-1 [1]
    -- Location
    --   FROM HI2Operations
    --    {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) hi2(1) version17(18)}

    -- from 3GPP TS 33.108 [AA]
    -- Location
    --    FROM UmtsHI2Operations
    --    {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) hi2(1)}
    --        -- The relevant module (including the 3GPP release and version number) needs
    --        -- to be chosen when compiling the application.

    -- from 3GPP TS 33.108 [AA]
    -- EPSLocation
    --    FROM EpsHI2Operations
    --    {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) hi2eps(8)}
            -- The relevant module (including the 3GPP release and version number) needs
            -- to be chosen when compiling the application.

    -- from 3GPP TS 33.128 [46]
    -- Location
    --    FROM TS33128Payloads
    --    {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) ts33128(19)};
        -- The relevant module (including the 3GPP release and version number)
        -- needs to be chosen when compiling the application.

-- end of IMPORTS

-- =============================
-- Object Identifier Definitions
-- =============================

lawfulInterceptDomainId OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2)}

commonLocations OBJECT IDENTIFIER ::= {lawfulInterceptDomainId commonLocations(39) genHeader(1) version1(1)}

-- ====================
-- Top-level definition
-- ====================

Locations ::= SEQUENCE (SIZE (1..MAX)) OF Location
-- This structure will probably be better placed in whatever documents define 
-- the usage of the location structure rather than here, but it can just as
-- easily be defined here.


Location ::= SEQUENCE
{
    locationInformation [1] LocationFormat,
    dynamicInformation  [2] DynamicInformation OPTIONAL,
    contextInformation  [3] STEIJE
}

--Source and Timing Extensible Information Jounral Entry
--Basically provenance without calling it that
STEIJE ::= SEQUENCE
{
    networkSTEIJE [1] LocationNetworkSTEIJE,
}

LocationInformation ::= CHOICE
{
    gMLShape        [1] Common-Parameters.GMLShape,
    gNSSLocation                  [2] Common-Parameters.GNSSLocation,
    wlanAPMACAddress              [3] Common-Parameters.MACAddress,  
    civicAddress                  [4] Common-Parameters.CivicAddress,
    pIDFLO                        [5] XMLType
}

LocationNetworkSTEIJE ::= SEQUENCE
{
    originalSource        [1] LocationSource,
    locationTimeStamps    [2] SEQUENCE (SIZE (1..MAX)) OF LocationTimestamp,
    additionalInformation [3] UTF8String OPTIONAL
}

LocationSource ::= ENUMERATED
{
    other(1),
    unknown(2),
    cPEOrClient(3),
    network(4)
}

LocationTimestamp ::= SEQUENCE
{
    timeStamp [1] GeneralizedTime,
    locationTimeStampQualifier [2] LocationTimeStampQualifier
}

LocationTimeStampQualifier ::= ENUMERATED
{
    unknown(1),
    timeOfInterception(2),
    timeOfMediation(3),
    timeOfCalculation(4),
    timeLastObserved(5)
}

XMLType ::= SEQUENCE
{
    xMLNamespace [1] XMLNamespace,
    xMLValue     [2] XMLValue
}

XMLNamespace ::= UTF8String

XMLValue ::= UTF8String


--all Dynamic Types still need to be fleshed out and may be better in 103 280
DynamicInformation ::= SEQUENCE
{
    orientation [1] DynamicOrientation,
    speed       [2] VelocityMeters,
    heading     [3] DynamicHeading
}

DynamicOrientation ::= SEQUENCE
{
    horizontalOrientation [1] AngleDecimalDegrees,
    verticalOrientation   [2] AngleDecimalDegrees OPTIONAL
}

-- REAL OR INTEGER?
VelocityMeters ::= UTF8String

DynamicHeading ::= SEQUENCE
{
    horizontalHeading [1] AngleDecimalDegrees,
    verticalHeading   [2] AngleDecimalDegrees
}

--LIProvenance ::= ENUMERATED
--{
--    other(1),
--    observed(2),
--    nFContext(3),
--    nFLookup(4)
--}

--LocationLIProvenance ::= SEQUENCE
--{
--    lIProvenance          [1] LIProvenance,
--    sourceNF              [2] SourceNF,
--    locationTimeStamps    [3] SEQUENCE (SIZE (1..MAX)) OF LocationTimestamp,
--    additionalInformation [4] UTF8String OPTIONAL
--}

--SourceNF ::= ENUMERATED
--{
--    aDMF(1),
--    tF(2),
--    pOI(3),
--    mDF(4)
--}

END