Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[uss_qualifier] Clean up NetRID requirements #245

Merged
merged 3 commits into from
Oct 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading