Skip to content

Commit

Permalink
[uss_qualifier] Clean up NetRID requirements (#245)
Browse files Browse the repository at this point in the history
* Clean up F3411-22a requirements

Check and format included test scenario steps

* Fix NET0260 in v19
  • Loading branch information
BenjaminPelletier authored Oct 13, 2023
1 parent 29377b1 commit 1e42d08
Show file tree
Hide file tree
Showing 50 changed files with 1,330 additions and 864 deletions.
14 changes: 14 additions & 0 deletions monitoring/uss_qualifier/configurations/dev/uspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,21 @@ v1:
requirement_collections:
- requirement_sets:
- astm.f3411.v22a.service_provider#Mandatory requirements
- astm.f3411.v22a.service_provider#Operator ID provider
- astm.f3411.v22a.service_provider#UAS ID Serial Number provider
- astm.f3411.v22a.service_provider#Height provider
- astm.f3411.v22a.service_provider#Operator Position provider
- astm.f3411.v22a.service_provider#Operational Status provider
- astm.f3411.v22a.display_provider#Mandatory requirements
- astm.f3411.v22a.display_provider#UAS ID Serial Number transmitter
- astm.f3411.v22a.display_provider#Timestamp transmitter
- astm.f3411.v22a.display_provider#Operational Status transmitter
- astm.f3411.v22a.display_provider#Operator ID transmitter
- astm.f3411.v22a.display_provider#Current Position transmitter
- astm.f3411.v22a.display_provider#Height transmitter
- astm.f3411.v22a.display_provider#Track Direction transmitter
- astm.f3411.v22a.display_provider#Speed transmitter
- astm.f3411.v22a.display_provider#Operator Position transmitter
- astm.f3411.v22a.dss_provider
- astm.f3548.v21.scd#Automated verification
participant_requirements:
Expand Down
28 changes: 22 additions & 6 deletions monitoring/uss_qualifier/documentation.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,25 @@
import marko.element


def text_of(parent: marko.element.Element) -> str:
if not hasattr(parent, "children"):
return ""
if isinstance(parent.children, str):
return parent.children
return "".join(text_of(c) for c in parent.children)
def text_of(value: marko.element.Element) -> str:
"""Gets the plain text contained within a Markdown element"""
if isinstance(value, str):
return value
elif isinstance(value, marko.block.BlockElement):
result = ""
for child in value.children:
result += text_of(child)
return result
elif isinstance(value, marko.inline.InlineElement):
if isinstance(value, marko.inline.LineBreak):
return "\n"
if isinstance(value.children, str):
return value.children
result = ""
for child in value.children:
result += text_of(child)
return result
else:
raise NotImplementedError(
"Cannot yet extract raw text from {}".format(value.__class__.__name__)
)
139 changes: 103 additions & 36 deletions monitoring/uss_qualifier/requirements/astm/f3411/v19.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,45 @@ For information on these requirements, refer to [the ASTM standard F3411-19](htt
* <tt>NET0230</tt>
* <tt>NET0240</tt>
* <tt>NET0250</tt>
* <tt>NET0260</tt>
* NET0260
* <tt>NET0260,NetSpDataResponseTime95thPercentile</tt>: 95th percentile response time
* <tt>NET0260,NetSpDataResponseTime99thPercentile</tt>: 99th percentile response time
* <tt>NET0260,NearRealTime</tt>: Near-real-time position information for applicable UAs
* <tt>NET0260,Table1,1</tt>: UAS ID, any option
* <tt>NET0260,Table1,1a</tt>: UAS ID, option 1 - serial number
* <tt>NET0260,Table1,1b</tt>: UAS ID, option 2 - registration id
* <tt>NET0260,Table1,1c</tt>: UAS ID, option 3 - utm (uuid)
* <tt>NET0260,Table1,2</tt>: UAS ID Type
* <tt>NET0260,Table1,3</tt>: UA Type
* <tt>NET0260,Table1,4</tt>: Timestamp
* <tt>NET0260,Table1,5</tt>: Timestamp Accuracy
* <tt>NET0260,Table1,6</tt>: Operational Status
* <tt>NET0260,Table1,7</tt>: Operation Description
* <tt>NET0260,Table1,8</tt>: Operator ID
* <tt>NET0260,Table1,9</tt>: Latitude
* <tt>NET0260,Table1,10</tt>: Longitude
* <tt>NET0260,Table1,11</tt>: Geodetic Altitude
* <tt>NET0260,Table1,12</tt>: Pressure Altitude
* <tt>NET0260,Table1,13</tt>: Height
* <tt>NET0260,Table1,14</tt>: Height type
* <tt>NET0260,Table1,15</tt>: Geodetic Vertical Accuracy
* <tt>NET0260,Table1,16</tt>: Horizontal Accuracy
* <tt>NET0260,Table1,17</tt>: Speed Accuracy
* <tt>NET0260,Table1,18</tt>: Track Direction
* <tt>NET0260,Table1,19</tt>: Speed
* <tt>NET0260,Table1,20</tt>: Vertical Speed
* <tt>NET0260,Table1,21</tt>: Auth Data
* <tt>NET0260,Table1,22</tt>: Operator Latitude
* <tt>NET0260,Table1,23</tt>: Operator Longitude
* <tt>NET0260,Table1,24</tt>: Operator Location Type
* <tt>NET0260,Table1,25</tt>: Operating Area Radius
* <tt>NET0260,Table1,26</tt>: Operating Area Polygon
* <tt>NET0260,Table1,27</tt>: Operating Area Type
* <tt>NET0260,Table1,28</tt>: Operating Area Count
* <tt>NET0260,Table1,29</tt>: Operating Area Floor
* <tt>NET0260,Table1,30</tt>: Operating Area Ceiling
* <tt>NET0260,Table1,31</tt>: Operating Area Start
* <tt>NET0260,Table1,32</tt>: Operating Area End
* <tt>NET0270</tt>
* <tt>NET0280</tt>
* <tt>NET0290</tt>
Expand All @@ -45,6 +83,41 @@ For information on these requirements, refer to [the ASTM standard F3411-19](htt
* <tt>NET0450</tt>
* <tt>NET0460</tt>
* <tt>NET0470</tt>
* <tt>NET0470,Table1,1</tt>: UAS ID, any option
* <tt>NET0470,Table1,1a</tt>: UAS ID, option 1 - Serial Number
* <tt>NET0470,Table1,1b</tt>: UAS ID, option 2 - Registration ID
* <tt>NET0470,Table1,1c</tt>: UAS ID, option 3 - UTM (UUID)
* <tt>NET0470,Table1,2</tt>: UAS ID Type
* <tt>NET0470,Table1,3</tt>: UA Type
* <tt>NET0470,Table1,4</tt>: Timestamp
* <tt>NET0470,Table1,5</tt>: Timestamp Accuracy
* <tt>NET0470,Table1,6</tt>: Operational Status
* <tt>NET0470,Table1,7</tt>: Operation Description
* <tt>NET0470,Table1,8</tt>: Operator ID
* <tt>NET0470,Table1,9</tt>: Latitude
* <tt>NET0470,Table1,10</tt>: Longitude
* <tt>NET0470,Table1,11</tt>: Geodetic Altitude
* <tt>NET0470,Table1,12</tt>: Pressure Altitude
* <tt>NET0470,Table1,13</tt>: Height
* <tt>NET0470,Table1,14</tt>: Height type
* <tt>NET0470,Table1,15</tt>: Geodetic Vertical Accuracy
* <tt>NET0470,Table1,16</tt>: Horizontal Accuracy
* <tt>NET0470,Table1,17</tt>: Speed Accuracy
* <tt>NET0470,Table1,18</tt>: Track Direction
* <tt>NET0470,Table1,19</tt>: Speed
* <tt>NET0470,Table1,20</tt>: Vertical Speed
* <tt>NET0470,Table1,21</tt>: Auth Data
* <tt>NET0470,Table1,22</tt>: Operator Latitude
* <tt>NET0470,Table1,23</tt>: Operator Longitude
* <tt>NET0470,Table1,24</tt>: Operator Location Type
* <tt>NET0470,Table1,25</tt>: Operating Area Radius
* <tt>NET0470,Table1,26</tt>: Operating Area Polygon
* <tt>NET0470,Table1,27</tt>: Operating Area Type
* <tt>NET0470,Table1,28</tt>: Operating Area Count
* <tt>NET0470,Table1,29</tt>: Operating Area Floor
* <tt>NET0470,Table1,30</tt>: Operating Area Ceiling
* <tt>NET0470,Table1,31</tt>: Operating Area Start
* <tt>NET0470,Table1,32</tt>: Operating Area End
* <tt>NET0480</tt>
* <tt>NET0490</tt>

Expand All @@ -60,7 +133,9 @@ For information on these requirements, refer to [the ASTM standard F3411-19](htt

### USS-USS Interfaces

* <tt>NET0710</tt>
* NET0710
* <tt>NET0710,1</tt>
* <tt>NET0710,2</tt>
* <tt>NET0720</tt>
* <tt>NET0730</tt>

Expand All @@ -70,7 +145,13 @@ For information on these requirements, refer to [the ASTM standard F3411-19](htt

* <tt>DSS0010</tt>
* <tt>DSS0020</tt>
* <tt>DSS0030</tt>
* DSS0030
* <tt>DSS0030,a</tt>
* <tt>DSS0030,b</tt>
* <tt>DSS0030,c</tt>
* <tt>DSS0030,d</tt>
* <tt>DSS0030,e</tt>
* <tt>DSS0030,f</tt>
* <tt>DSS0040</tt>
* <tt>DSS0050</tt>
* <tt>DSS0060</tt>
Expand All @@ -80,42 +161,28 @@ For information on these requirements, refer to [the ASTM standard F3411-19](htt

* <tt>DSS0110</tt>
* <tt>DSS0120</tt>
* <tt>DSS0130</tt>: Data Synchronization
* <tt>DSS0130,2,a</tt>: Subscription ID Synchronization
* <tt>DSS0130,2,b</tt>: Subscription Owner Synchronization
* <tt>DSS0130,2,c</tt>: Subscription URL Synchronization
* <tt>DSS0130,2,d</tt>: Subscription Start/End Times Synchronization
* <tt>DSS0130,2,f</tt>: Subscription Notification Count Synchronization
* <tt>DSS0130,3,a</tt>: ISA ID Synchronization
* <tt>DSS0130,3,b</tt>: ISA Owner Synchronization
* <tt>DSS0130,3,c</tt>: ISA URL Synchronization
* <tt>DSS0130,3,d</tt>: ISA Start/End Times Synchronization
* DSS0130: Data Synchronization
* <tt>DSS0130,1</tt>: Cell ID
* <tt>DSS0130,2,a</tt>: Subscription ID
* <tt>DSS0130,2,b</tt>: Subscription Owner
* <tt>DSS0130,2,c</tt>: Subscription URL
* <tt>DSS0130,2,d</tt>: Subscription Start/End Times
* <tt>DSS0130,2,e</tt>: Subscription Area
* <tt>DSS0130,2,f</tt>: Subscription Notification Count
* <tt>DSS0130,3,a</tt>: ISA ID
* <tt>DSS0130,3,b</tt>: ISA Owner
* <tt>DSS0130,3,c</tt>: ISA URL
* <tt>DSS0130,3,d</tt>: ISA Start/End Times
* <tt>DSS0130,3,e</tt>: ISA Area

Elaboration on testing methods for DSS0130 in section A2.6.1 implies the following requirements:

1. *PUT Identification Service Area:* Tests must demonstrate that after an ISA
is (<tt>A2-6-1,1a</tt>) created or (<tt>A2-6-1,1b</tt>) modified, it can
(<tt>A2-6-1,1c</tt>) be retrieved from all DSS instances for the region with
consistent results. In addition, the end time for an ISA governs when the
DSS automatically removes it from the DSS. Tests must demonstrate that
(<tt>A2-6-1,1d</tt>) automatic removal of ISAs occurs on all DSS instances.
2. *DELETE Identification Service Area:* Tests must demonstrate that an ISA can
be (<tt>A2-6-1,2a</tt>) deleted on any DSS instance and (<tt>A2-6-1,2b</tt>)
the deletion is reflected on all other DSS instances.
3. *PUT Subscription:* Tests must demonstrate that a subscription can be
(<tt>A2-6-1,3a</tt>) created on any instance and notifications for the subscription are
triggered when intersecting ISAs are (<tt>A2-6-1,3b</tt>) added or (<tt>A2-6-1,3c</tt>) modified to all
other instances. In addition, the end time for a subscription governs when
the DSS automatically removes it from the DSS. Tests must demonstrate that
(<tt>A2-6-1,3d</tt>) automatic removal of subscriptions occurs on all DSS instances.
4. *DELETE Subscription:* Tests must demonstrate that that (<tt>A2-6-1,4a</tt>) a
subscription can be deleted on any DSS instance and (<tt>A2-6-1,4b</tt>) the deletion is
reflected on all other DSS instances.
5. *GET Subscription:* (<tt>A2-6-1,5</tt>) Tests must demonstrate that a specific subscription can
be retrieved from any DSS instance with consistent results.
6. *GET Subscriptions:* (<tt>A2-6-1,6</tt>) Tests must demonstrate that the complete set of
subscriptions in an area for a Net-RID Display Provider can be retrieved from
any DSS instance with consistent results.
1. *PUT Identification Service Area:* Tests must demonstrate that after an ISA is (<tt>DSS0130,A2-6-1,1a</tt>) created or (<tt>DSS0130,A2-6-1,1b</tt>) modified, it can (<tt>DSS0130,A2-6-1,1c</tt>) be retrieved from all DSS instances for the region with consistent results. In addition, the end time for an ISA governs when the DSS automatically removes it from the DSS. Tests must demonstrate that (<tt>DSS0130,A2-6-1,1d</tt>) automatic removal of ISAs occurs on all DSS instances.
2. *DELETE Identification Service Area:* Tests must demonstrate that (<tt>DSS0130,A2-6-1,2a</tt>) an ISA can be deleted on any DSS instance and (<tt>DSS0130,A2-6-1,2b</tt>) the deletion is reflected on all other DSS instances.
3. *PUT Subscription:* Tests must demonstrate that a subscription can be (<tt>DSS0130,A2-6-1,3a</tt>) created on any instance and notifications for the subscription are triggered when intersecting ISAs are (<tt>DSS0130,A2-6-1,3b</tt>) added or (<tt>DSS0130,A2-6-1,3c</tt>) modified to all other instances. In addition, the end time for a subscription governs when the DSS automatically removes it from the DSS. Tests must demonstrate that (<tt>DSS0130,A2-6-1,3d</tt>) automatic removal of subscriptions occurs on all DSS instances.
4. *DELETE Subscription:* Tests must demonstrate that a subscription can be (<tt>DSS0130,A2-6-1,4a</tt>) deleted on any DSS instance and (<tt>DSS0130,A2-6-1,4b</tt>) the deletion is reflected on all other DSS instances.
5. *GET Subscription:* (<tt>DSS0130,A2-6-1,5</tt>) Tests must demonstrate that a specific subscription can be retrieved from any DSS instance with consistent results.
6. *GET Subscriptions*: (<tt>DSS0130,A2-6-1,6</tt>) Tests must demonstrate that the complete set of subscriptions in an area for a Net-RID Display Provider can be retrieved from any DSS instance with consistent results.

### Test Environment Requirements

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ This file describes the set of ASTM F3411-19 requirements with which a USS fulfi
* **astm.f3411.v19.NET0440**
* **astm.f3411.v19.NET0450**
* **astm.f3411.v19.NET0460**
* **astm.f3411.v19.NET0470**
* NET0470 is not included in this list because the Display Application may not request any particular enumerated data field.
* **astm.f3411.v19.NET0480**
* **astm.f3411.v19.NET0490**

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,13 @@ This file describes the set of ASTM F3411-19 requirements with which a USS provi

* **astm.f3411.v19.DSS0010**
* **astm.f3411.v19.DSS0020**
* **astm.f3411.v19.DSS0030**
* DSS0030
* **astm.f3411.v19.DSS0030,a**
* **astm.f3411.v19.DSS0030,b**
* **astm.f3411.v19.DSS0030,c**
* **astm.f3411.v19.DSS0030,d**
* **astm.f3411.v19.DSS0030,e**
* **astm.f3411.v19.DSS0030,f**
* **astm.f3411.v19.DSS0040**
* **astm.f3411.v19.DSS0050**
* **astm.f3411.v19.DSS0060**
Expand All @@ -18,30 +24,33 @@ This file describes the set of ASTM F3411-19 requirements with which a USS provi

* **astm.f3411.v19.DSS0110**
* **astm.f3411.v19.DSS0120**
* **astm.f3411.v19.DSS0130**
* DSS0130
* **astm.f3411.v19.DSS0130,1**
* **astm.f3411.v19.DSS0130,2,a**
* **astm.f3411.v19.DSS0130,2,b**
* **astm.f3411.v19.DSS0130,2,c**
* **astm.f3411.v19.DSS0130,2,d**
* **astm.f3411.v19.DSS0130,2,e**
* **astm.f3411.v19.DSS0130,2,f**
* **astm.f3411.v19.DSS0130,3,a**
* **astm.f3411.v19.DSS0130,3,b**
* **astm.f3411.v19.DSS0130,3,c**
* **astm.f3411.v19.DSS0130,3,d**
* **astm.f3411.v19.A2-6-1,1a**
* **astm.f3411.v19.A2-6-1,1b**
* **astm.f3411.v19.A2-6-1,1c**
* **astm.f3411.v19.A2-6-1,1d**
* **astm.f3411.v19.A2-6-1,2a**
* **astm.f3411.v19.A2-6-1,2b**
* **astm.f3411.v19.A2-6-1,3a**
* **astm.f3411.v19.A2-6-1,3b**
* **astm.f3411.v19.A2-6-1,3c**
* **astm.f3411.v19.A2-6-1,3d**
* **astm.f3411.v19.A2-6-1,4a**
* **astm.f3411.v19.A2-6-1,4b**
* **astm.f3411.v19.A2-6-1,5**
* **astm.f3411.v19.A2-6-1,6**
* **astm.f3411.v19.DSS0130,3,e**
* **astm.f3411.v19.DSS0130,A2-6-1,1a**
* **astm.f3411.v19.DSS0130,A2-6-1,1b**
* **astm.f3411.v19.DSS0130,A2-6-1,1c**
* **astm.f3411.v19.DSS0130,A2-6-1,1d**
* **astm.f3411.v19.DSS0130,A2-6-1,2a**
* **astm.f3411.v19.DSS0130,A2-6-1,2b**
* **astm.f3411.v19.DSS0130,A2-6-1,3a**
* **astm.f3411.v19.DSS0130,A2-6-1,3b**
* **astm.f3411.v19.DSS0130,A2-6-1,3c**
* **astm.f3411.v19.DSS0130,A2-6-1,3d**
* **astm.f3411.v19.DSS0130,A2-6-1,4a**
* **astm.f3411.v19.DSS0130,A2-6-1,4b**
* **astm.f3411.v19.DSS0130,A2-6-1,5**
* **astm.f3411.v19.DSS0130,A2-6-1,6**

### Test Environment Requirements

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,24 @@ This file describes the set of ASTM F3411-19 requirements with which a USS fulfi
* **astm.f3411.v19.NET0210**
* **astm.f3411.v19.NET0220**
* **astm.f3411.v19.NET0250**
* **astm.f3411.v19.NET0260**
* NET0260
* **astm.f3411.v19.NET0260,NetSpDataResponseTime95thPercentile**
* **astm.f3411.v19.NET0260,NetSpDataResponseTime99thPercentile**
* **astm.f3411.v19.NET0260,NearRealTime**
* **astm.f3411.v19.NET0260,Table1,1**
* **astm.f3411.v19.NET0260,Table1,2**
* **astm.f3411.v19.NET0260,Table1,3**
* **astm.f3411.v19.NET0260,Table1,4**
* **astm.f3411.v19.NET0260,Table1,5**
* **astm.f3411.v19.NET0260,Table1,9**
* **astm.f3411.v19.NET0260,Table1,10**
* **astm.f3411.v19.NET0260,Table1,11**
* **astm.f3411.v19.NET0260,Table1,15**
* **astm.f3411.v19.NET0260,Table1,16**
* **astm.f3411.v19.NET0260,Table1,17**
* **astm.f3411.v19.NET0260,Table1,18**
* **astm.f3411.v19.NET0260,Table1,19**
* **astm.f3411.v19.NET0260,Table1,20**
* **astm.f3411.v19.NET0270**
* **astm.f3411.v19.NET0280**
* **astm.f3411.v19.NET0290**
Expand All @@ -46,4 +63,5 @@ This file describes the set of ASTM F3411-19 requirements with which a USS fulfi

#### USS-USS Interfaces

* **astm.f3411.v19.NET0710**
* **astm.f3411.v19.NET0710,1**
* **astm.f3411.v19.NET0710,2**
Loading

0 comments on commit 1e42d08

Please sign in to comment.