From c3e6ae244f143d16a4a4e79d21dde063ce86d46a Mon Sep 17 00:00:00 2001 From: Julien Perrochet Date: Fri, 10 Jan 2025 13:29:42 +0100 Subject: [PATCH] [uss_qualifier] net0320: check that a UAS that stops reporting telemetry is reported as such --- .../resources/netrid/flight_data_resources.py | 23 ++- .../netrid/common/networked_uas_disconnect.py | 162 +++++++++++++++ .../astm/netrid/display_data_evaluator.py | 185 ++++++++++++++++++ .../scenarios/astm/netrid/v19/__init__.py | 1 + .../netrid/v19/networked_uas_disconnect.md | 117 +++++++++++ .../netrid/v19/networked_uas_disconnect.py | 11 ++ .../scenarios/astm/netrid/v22a/__init__.py | 1 + .../netrid/v22a/networked_uas_disconnect.md | 129 ++++++++++++ .../netrid/v22a/networked_uas_disconnect.py | 11 ++ .../suites/astm/netrid/f3411_19.md | 78 ++++---- .../suites/astm/netrid/f3411_19.yaml | 8 + .../suites/astm/netrid/f3411_22a.md | 128 ++++++------ .../suites/astm/netrid/f3411_22a.yaml | 8 + .../suites/uspace/network_identification.md | 117 +++++------ .../suites/uspace/required_services.md | 117 +++++------ 15 files changed, 884 insertions(+), 212 deletions(-) create mode 100644 monitoring/uss_qualifier/scenarios/astm/netrid/common/networked_uas_disconnect.py create mode 100644 monitoring/uss_qualifier/scenarios/astm/netrid/v19/networked_uas_disconnect.md create mode 100644 monitoring/uss_qualifier/scenarios/astm/netrid/v19/networked_uas_disconnect.py create mode 100644 monitoring/uss_qualifier/scenarios/astm/netrid/v22a/networked_uas_disconnect.md create mode 100644 monitoring/uss_qualifier/scenarios/astm/netrid/v22a/networked_uas_disconnect.py diff --git a/monitoring/uss_qualifier/resources/netrid/flight_data_resources.py b/monitoring/uss_qualifier/resources/netrid/flight_data_resources.py index 6233f1bcc1..817abc2955 100644 --- a/monitoring/uss_qualifier/resources/netrid/flight_data_resources.py +++ b/monitoring/uss_qualifier/resources/netrid/flight_data_resources.py @@ -1,11 +1,10 @@ import json +import uuid from datetime import timedelta from typing import List, Optional -import uuid import arrow from implicitdict import ImplicitDict, StringBasedDateTime -from monitoring.uss_qualifier.resources.files import load_dict, load_content from uas_standards.interuss.automated_testing.rid.v1.injection import ( TestFlightDetails, RIDAircraftState, @@ -14,7 +13,7 @@ from monitoring.monitorlib.rid_automated_testing.injection_api import ( TestFlight, ) -from monitoring.uss_qualifier.resources.resource import Resource +from monitoring.uss_qualifier.resources.files import load_dict, load_content from monitoring.uss_qualifier.resources.netrid.flight_data import ( FlightDataSpecification, FlightRecordCollection, @@ -25,6 +24,7 @@ from monitoring.uss_qualifier.resources.netrid.simulation.kml_flights import ( get_flight_records, ) +from monitoring.uss_qualifier.resources.resource import Resource class FlightDataResource(Resource[FlightDataSpecification]): @@ -88,6 +88,23 @@ def get_test_flights(self) -> List[TestFlight]: return test_flights + def truncate_flights_duration(self, duration: timedelta): + """ + Ensures that the injected flight data will only contain telemetry for at most the specified duration. + + Note that this mutates the present FlightDataResource instance. + + Intended to be used for simulating the disconnection of a networked UAS. + """ + for flight in self.flight_collection.flights: + latest_allowed_end = flight.reference_time.datetime + duration + # Keep only the states within the allowed duration + flight.states = [ + state + for state in flight.states + if state.timestamp.datetime <= latest_allowed_end + ] + class FlightDataStorageSpecification(ImplicitDict): flight_record_collection_path: Optional[str] diff --git a/monitoring/uss_qualifier/scenarios/astm/netrid/common/networked_uas_disconnect.py b/monitoring/uss_qualifier/scenarios/astm/netrid/common/networked_uas_disconnect.py new file mode 100644 index 0000000000..8131a49945 --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/netrid/common/networked_uas_disconnect.py @@ -0,0 +1,162 @@ +from datetime import timedelta +from typing import List, Optional + +from requests.exceptions import RequestException +from s2sphere import LatLngRect + +from monitoring.monitorlib.errors import stacktrace_string +from monitoring.monitorlib.rid import RIDVersion +from monitoring.uss_qualifier.common_data_definitions import Severity +from monitoring.uss_qualifier.resources.astm.f3411.dss import DSSInstancesResource +from monitoring.uss_qualifier.resources.netrid import ( + FlightDataResource, + NetRIDServiceProviders, + EvaluationConfigurationResource, +) +from monitoring.uss_qualifier.scenarios.astm.netrid import ( + display_data_evaluator, + injection, +) +from monitoring.uss_qualifier.scenarios.astm.netrid.injected_flight_collection import ( + InjectedFlightCollection, +) +from monitoring.uss_qualifier.scenarios.astm.netrid.injection import ( + InjectedFlight, + InjectedTest, +) +from monitoring.uss_qualifier.scenarios.astm.netrid.virtual_observer import ( + VirtualObserver, +) +from monitoring.uss_qualifier.scenarios.scenario import GenericTestScenario +from monitoring.uss_qualifier.suites.suite import ExecutionContext + + +class NetworkedUASDisconnect(GenericTestScenario): + """A scenario verifying the behavior of a service provider when a networked UAS associated to it loses its connectivity.""" + + _flights_data: FlightDataResource + _service_providers: NetRIDServiceProviders + _evaluation_configuration: EvaluationConfigurationResource + + _injected_flights: List[InjectedFlight] + _injected_tests: List[InjectedTest] + + def __init__( + self, + flights_data: FlightDataResource, + service_providers: NetRIDServiceProviders, + evaluation_configuration: EvaluationConfigurationResource, + dss_pool: DSSInstancesResource, + ): + super().__init__() + self._flights_data = flights_data + # Truncate flights to 15 seconds, we don't need more for this scenario, + # (disconnection is simulated by simply not sending any data anymore) + self._flights_data.truncate_flights_duration(timedelta(seconds=15)) + self._service_providers = service_providers + self._evaluation_configuration = evaluation_configuration + self._dss_pool = dss_pool + self._injected_tests = [] + + @property + def _rid_version(self) -> RIDVersion: + raise NotImplementedError( + "NominalBehavior test scenario subclass must specify _rid_version" + ) + + def run(self, context: ExecutionContext): + self.begin_test_scenario(context) + self.begin_test_case("Networked UAS disconnect") + + self.begin_test_step("Injection") + self._inject_flights() + self.end_test_step() + + self._poll_during_flights() + + self.end_test_case() + self.end_test_scenario() + + def _inject_flights(self): + (self._injected_flights, self._injected_tests) = injection.inject_flights( + self, self._flights_data, self._service_providers + ) + + def _poll_during_flights(self): + config = self._evaluation_configuration.configuration + + virtual_observer = VirtualObserver( + injected_flights=InjectedFlightCollection(self._injected_flights), + repeat_query_rect_period=config.repeat_query_rect_period, + min_query_diagonal_m=config.min_query_diagonal, + relevant_past_data_period=self._rid_version.realtime_period + + config.max_propagation_latency.timedelta, + ) + + evaluator = display_data_evaluator.DisconnectedUASObservationEvaluator( + self, + self._injected_flights, + config, + self._rid_version, + self._dss_pool.dss_instances[0] if self._dss_pool else None, + ) + + def poll_fct(rect: LatLngRect) -> bool: + return evaluator.evaluate_disconnected_flights(rect) + + virtual_observer.start_polling( + config.min_polling_interval.timedelta, + [ + self._rid_version.max_diagonal_km * 1000 - 100, # clustered + self._rid_version.max_details_diagonal_km * 1000 - 100, # details + ], + poll_fct, + ) + + self.begin_test_step( + "Verify all disconnected flights have been observed as disconnected" + ) + unobserved_disconnects = evaluator.remaining_disconnections_to_observe() + if len(unobserved_disconnects) > 0: + with self.check( + "All injected disconnected flights have been observed as disconnected", + list(unobserved_disconnects.values()), + ) as check: + check.record_failed( + summary="Some disconnects were not observed", + details=f"The following flights have not been observed as having been disconnected despite having been observed after their last telemetry's timestamp: {list(unobserved_disconnects.keys())}", + ) + self.end_test_step() + + def cleanup(self): + self.begin_cleanup() + while self._injected_tests: + injected_test = self._injected_tests.pop() + matching_sps = [ + sp + for sp in self._service_providers.service_providers + if sp.participant_id == injected_test.participant_id + ] + if len(matching_sps) != 1: + matching_ids = ", ".join(sp.participant_id for sp in matching_sps) + raise RuntimeError( + f"Found {len(matching_sps)} service providers with participant ID {injected_test.participant_id} ({matching_ids}) when exactly 1 was expected" + ) + sp = matching_sps[0] + check = self.check("Successful test deletion", [sp.participant_id]) + try: + query = sp.delete_test(injected_test.test_id, injected_test.version) + self.record_query(query) + if query.status_code != 200: + raise ValueError( + f"Received status code {query.status_code} after attempting to delete test {injected_test.test_id} at version {injected_test.version} from service provider {sp.participant_id}" + ) + check.record_passed() + except (RequestException, ValueError) as e: + stacktrace = stacktrace_string(e) + check.record_failed( + summary="Error while trying to delete test flight", + severity=Severity.Medium, + details=f"While trying to delete a test flight from {sp.participant_id}, encountered error:\n{stacktrace}", + ) + self.end_cleanup() diff --git a/monitoring/uss_qualifier/scenarios/astm/netrid/display_data_evaluator.py b/monitoring/uss_qualifier/scenarios/astm/netrid/display_data_evaluator.py index 376fb7f60e..87c2358090 100644 --- a/monitoring/uss_qualifier/scenarios/astm/netrid/display_data_evaluator.py +++ b/monitoring/uss_qualifier/scenarios/astm/netrid/display_data_evaluator.py @@ -1208,6 +1208,191 @@ def fail_check(): fail_check() +class DisconnectedUASObservationEvaluator(object): + """Evaluates observations of an RID system over time. + + This evaluator observes a set of provided RIDSystemObservers in + evaluate_system by repeatedly polling them according to the expected data + provided to RIDObservationEvaluator upon construction. During these + evaluations, RIDObservationEvaluator mutates provided findings object to add + additional findings. + """ + + def __init__( + self, + test_scenario: TestScenario, + injected_flights: List[InjectedFlight], + config: EvaluationConfiguration, + rid_version: RIDVersion, + dss: DSSInstance, + ): + self._test_scenario = test_scenario + self._common_dictionary_evaluator = RIDCommonDictionaryEvaluator( + config, self._test_scenario, rid_version + ) + self._injected_flights = injected_flights + self._config = config + self._rid_version = rid_version + self._dss = dss + if dss and dss.rid_version != rid_version: + raise ValueError( + f"Cannot evaluate a system using RID version {rid_version} with a DSS using RID version {dss.rid_version}" + ) + self._retrieved_flight_details: Set[ + str + ] = ( + set() + ) # Contains the observed IDs of the flights whose details were retrieved. + + # Keep track of the flights that we have observed as having been 'disconnected' + # (last observed telemetry corresponds to last injected one within the window where data is returned) + self._witnessed_disconnections: Set[str] = set() + + def remaining_disconnections_to_observe(self) -> Dict[str, str]: + return { + f.flight.injection_id: f.uss_participant_id + for f in self._injected_flights + if f.flight.injection_id not in self._witnessed_disconnections + } + + def evaluate_disconnected_flights( + self, + rect: s2sphere.LatLngRect, + ) -> bool: + """ + Polls service providers relevant to the injected test flights and verifies that, + for any flight that is not sending telemtry data anymore (ie, the last injected telemetry data lies in the past), + service providers are accurately reporting that no more telemetry data is being received. + + This is expected to be reflected by SP's simply reporting the last known position of the flight up to one minute after it was received. + + returns true once all terminated flights have been evaluated. + """ + + self._test_scenario.begin_test_step("Service Provider polling") + + # Observe Service Provider with uss_qualifier acting as a Display Provider + sp_observation = all_flights( + rect, + include_recent_positions=True, + get_details=True, + rid_version=self._rid_version, + session=self._dss.client, + dss_participant_id=self._dss.participant_id, + ) + + # map observed flights to injected flight and attribute participant ID + mapping_by_injection_id = map_fetched_to_injected_flights( + self._injected_flights, list(sp_observation.uss_flight_queries.values()) + ) + for q in sp_observation.queries: + self._test_scenario.record_query(q) + + # Evaluate observations + self._evaluate_sp_observation(sp_observation, mapping_by_injection_id) + + self._test_scenario.end_test_step() + + return False + + def _evaluate_sp_observation( + self, + sp_observation: FetchedFlights, + mappings: Dict[str, TelemetryMapping], + ) -> None: + # Note: This step currently uses the DSS endpoint to perform a one-time query for ISAs, but this + # endpoint is not strictly required. The PUT Subscription endpoint, followed immediately by the + # DELETE Subscription would produce the same result, but because uss_qualifier does not expose any + # endpoints (and therefore cannot provide a callback/base URL), calling the one-time query endpoint + # is currently much cleaner. If this test is applied to a DSS that does not implement the one-time + # ISA query endpoint, this check can be adapted. + with self._test_scenario.check( + "ISA query", [self._dss.participant_id] + ) as check: + if not sp_observation.dss_isa_query.success: + check.record_failed( + summary="Could not query ISAs from DSS", + severity=Severity.Medium, + details=f"Query to {self._dss.participant_id}'s DSS at {sp_observation.dss_isa_query.query.request.url} failed {sp_observation.dss_isa_query.query.status_code}", + query_timestamps=[ + sp_observation.dss_isa_query.query.request.initiated_at.datetime + ], + ) + return + + self._evaluate_sp_observation_of_disconnected_flights(sp_observation, mappings) + + def _evaluate_sp_observation_of_disconnected_flights( + self, + sp_observation: FetchedFlights, + mappings: Dict[str, TelemetryMapping], + ) -> None: + + # TODO we will want to reuse the code in RIDObservationEvaluator rather than copy-pasting it + _evaluate_flight_presence( + "uss_qualifier, acting as Display Provider", + sp_observation.queries, + False, + mappings, + set(), + self._test_scenario, + self._injected_flights, + self._rid_version, + self._config, + ) + + # For any flight that has the last telemetry in the past ~minute, we expect to observe data with that timestamp. + # No need to duplicate work done in _evaluate_flight_presence, we can just focus on flights that have ended in the last minute. + for expected_flight in self._injected_flights: + t_response = max( + q.response.reported.datetime for q in sp_observation.queries + ) + query_timestamps = [q.request.timestamp for q in sp_observation.queries] + timestamps = [ + arrow.get(t.timestamp) for t in expected_flight.flight.telemetry + ] + + last_expected_telemetry = max(timestamps).datetime + + # Only check when we are within the window where we expect to see the last telemetry + if ( + last_expected_telemetry + < t_response + < last_expected_telemetry + self._rid_version.realtime_period + ): + with self._test_scenario.check( + "Disconnected flight is shown as such", + [expected_flight.uss_participant_id], + ) as check: + if not expected_flight.flight.injection_id in mappings: + check.record_failed( + summary="Expected flight not observed", + details="A flight for which telemetry was injected was not observed by the Service Provider", + query_timestamps=query_timestamps, + ) + continue + + if expected_flight.flight.injection_id in mappings: + observed_telemetry_timestamp = Time( + mappings[ + expected_flight.flight.injection_id + ].observed_flight.flight.timestamp.datetime + ) + + if arrow.get(last_expected_telemetry) != arrow.get( + observed_telemetry_timestamp + ): + check.record_failed( + summary="Last observed telemetry timestamp not consistent with last injected telemetry", + details=f"Expected last telemetry timestamp: {last_expected_telemetry}, observed last telemetry timestamp: {observed_telemetry_timestamp}", + query_timestamps=query_timestamps, + ) + else: + self._witnessed_disconnections.add( + expected_flight.flight.injection_id + ) + + def _chronological_positions(f: Flight) -> List[s2sphere.LatLng]: """ Returns the recent positions of the flight, ordered by time with the oldest first, and the most recent last. diff --git a/monitoring/uss_qualifier/scenarios/astm/netrid/v19/__init__.py b/monitoring/uss_qualifier/scenarios/astm/netrid/v19/__init__.py index c6ecd1745b..7289afec4b 100644 --- a/monitoring/uss_qualifier/scenarios/astm/netrid/v19/__init__.py +++ b/monitoring/uss_qualifier/scenarios/astm/netrid/v19/__init__.py @@ -1,5 +1,6 @@ from .dss_interoperability import DSSInteroperability from .nominal_behavior import NominalBehavior +from .networked_uas_disconnect import NetworkedUASDisconnect from .misbehavior import Misbehavior from .aggregate_checks import AggregateChecks from .operator_interactions import OperatorInteractions diff --git a/monitoring/uss_qualifier/scenarios/astm/netrid/v19/networked_uas_disconnect.md b/monitoring/uss_qualifier/scenarios/astm/netrid/v19/networked_uas_disconnect.md new file mode 100644 index 0000000000..187418a131 --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/netrid/v19/networked_uas_disconnect.md @@ -0,0 +1,117 @@ +# ASTM NetRID networked UAS disconnection test scenario + +## Overview + +In this scenario, a single nominal flight simulating a disconnection is injected into each NetRID Service Provider (SP) under test. Each of the injected flights is expected to be visible to the uss_qualifier, which will check that every SP behaves correctly when a flight disconnects. + +Note that disconnections are simulated by not injecting any telemetry anymore. As such, within the test framework, a disconnected flight cannot be distinguished from a flight that ended normally. + +This scenario evaluates that SPs correctly behave once they stop receiving telemetry for a flight. + +## Resources + +### flights_data + +A [`FlightDataResource`](../../../../resources/netrid/flight_data.py) containing 1 nominal flight per SP under test. + +### service_providers + +A set of [`NetRIDServiceProviders`](../../../../resources/netrid/service_providers.py) to be tested via the injection of RID flight data. This scenario requires at least one SP under test. + +### evaluation_configuration + +This [`EvaluationConfigurationResource`](../../../../resources/netrid/evaluation.py) defines how to gauge success when observing the injected flights. + +### dss_pool + +uss_qualifier acts as a Display Provider querying the Service Provider(s) under test. As such, it will query an instance from the provided [`DSSInstanceResource`](../../../../resources/astm/f3411/dss.py) to obtain the relevant identification service areas and then query the corresponding USSs. + +## Networked UAS disconnect test case + +### Injection test step + +In this step, uss_qualifier injects a single nominal flight into each SP under test, usually with a start time in the future. Each SP is expected to queue the provided telemetry and later simulate that telemetry coming from an aircraft at the designated timestamps. + +#### Successful injection check + +Per **[interuss.automated_testing.rid.injection.UpsertTestSuccess](../../../../requirements/interuss/automated_testing/rid/injection.md)**, the injection attempt of the valid flight should succeed for every NetRID Service Provider under test. + +**[astm.f3411.v19.NET0500](../../../../requirements/astm/f3411/v19.md)** requires a Service Provider to provide a persistently supported test instance of their implementation. +This check will fail if the flight was not successfully injected. + +#### Valid flight check + +TODO: Validate injected flights, especially to make sure they contain the specified injection IDs + +Per **[interuss.automated_testing.rid.injection.UpsertTestResult](../../../../requirements/interuss/automated_testing/rid/injection.md)**, the NetRID Service Provider under test should only make valid modifications to the injected flights. This includes: +* A flight with the specified injection ID must be returned. + +#### Identifiable flights check + +This particular test requires each flight to be uniquely identifiable by its 2D telemetry position; the same (lat, lng) pair may not appear in two different telemetry points, even if the two points are in different injected flights. This should generally be achieved by injecting appropriate data. + +### Service Provider polling test step + +If a DSS was provided to this test scenario, uss_qualifier acts as a Display Provider to query Service Providers under test in this step. + +#### ISA query check + +**[interuss.f3411.dss_endpoints.SearchISAs](../../../../requirements/interuss/f3411/dss_endpoints.md)** requires a USS providing a DSS instance to implement the DSS endpoints of the OpenAPI specification. If uss_qualifier is unable to query the DSS for ISAs, this check will fail. + +#### [Flight presence checks](./display_data_evaluator_flight_presence.md) + +#### Flights data format check + +**[astm.f3411.v19.NET0710,1](../../../../requirements/astm/f3411/v19.md)** and **[astm.f3411.v19.NET0340](../../../../requirements/astm/f3411/v19.md)** requires a Service Provider to implement the P2P portion of the OpenAPI specification. This check will fail if the response to the /flights endpoint does not validate against the OpenAPI-specified schema. + +#### [Flight consistency with Common Data Dictionary checks](./common_dictionary_evaluator_sp_flight.md) + +#### Recent positions timestamps check +**[astm.f3411.v19.NET0270](../../../../requirements/astm/f3411/v19.md)** requires all recent positions to be within the NetMaxNearRealTimeDataPeriod. This check will fail if any of the reported positions are older than the maximally allowed period plus NetSpDataResponseTime99thPercentile. + +#### Recent positions for aircraft crossing the requested area boundary show only one position before or after crossing check +**[astm.f3411.v19.NET0270](../../../../requirements/astm/f3411/v19.md)** requires that when an aircraft enters or leaves the queried area, the last or first reported position outside the area is provided in the recent positions, as long as it is not older than NetMaxNearRealTimeDataPeriod. + +This implies that any recent position outside the area must be either preceded or followed by a position inside the area. + +(This check validates NET0270 b and c). + +#### ⚠️ Disconnected flight is shown as such check + +For a networked UAS that loses connectivity during a flight, its associated Service Provider is required to provide any Display Provider requesting data for the flight with the most recent position with the indication that the UAS is disconnected, as per **[astm.f3411.v19.NET0320](../../../../requirements/astm/f3411/v19.md)**. + +Service providers are expected to convey to clients that a flight is not sending any telemetry by providing the last received telemetry, including its timestamp. Clients are expected to deduce that a flight is disconnected when its telemetry is getting stale. + +Service providers that return anything else than the last received telemetry during `NetMaxNearRealTimeDataPeriodSeconds` (60) after a flight stops disconnects will fail this check. + +#### Successful observation check + +Per **[interuss.automated_testing.rid.observation.ObservationSuccess](../../../../requirements/interuss/automated_testing/rid/observation.md)**, the call to each observer is expected to succeed since a valid view was provided by uss_qualifier. + +#### [Clustering checks](./display_data_evaluator_clustering.md) + +#### Duplicate flights check + +Per **[interuss.automated_testing.rid.observation.UniqueFlights](../../../../requirements/interuss/automated_testing/rid/observation.md)**, the same flight ID may not be reported by a Display Provider for two flights in the same observation. + +#### [Flight presence checks](./display_data_evaluator_flight_presence.md) + +#### [Flight consistency with Common Data Dictionary checks](./common_dictionary_evaluator_dp_flight.md) + +#### Telemetry being used when present check + +**[astm.f3411.v19.NET0290](../../../../requirements/astm/f3411/v19.md)** requires a SP uses Telemetry vs extrapolation when telemetry is present. + +### Verify all disconnected flights have been observed as disconnected test step + +#### ⚠️ All injected disconnected flights have been observed as disconnected check + +**[astm.f3411.v19.NET0320](../../../../requirements/astm/f3411/v19.md)** requires that a Service Provider continues providing the last received telemetry for a flight that has been disconnected. This check will fail if any of the injected flights simulating a connectivity loss is not observed as disconnected within the window of `NetMaxNearRealTimeDataPeriodSeconds` (60) after the disconnection occurs. + +## Cleanup + +The cleanup phase of this test scenario attempts to remove injected data from all SPs. + +### Successful test deletion check + +**[interuss.automated_testing.rid.injection.DeleteTestSuccess](../../../../requirements/interuss/automated_testing/rid/injection.md)** diff --git a/monitoring/uss_qualifier/scenarios/astm/netrid/v19/networked_uas_disconnect.py b/monitoring/uss_qualifier/scenarios/astm/netrid/v19/networked_uas_disconnect.py new file mode 100644 index 0000000000..8d46abb731 --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/netrid/v19/networked_uas_disconnect.py @@ -0,0 +1,11 @@ +from monitoring.monitorlib.rid import RIDVersion +from monitoring.uss_qualifier.scenarios.scenario import TestScenario +from monitoring.uss_qualifier.scenarios.astm.netrid.common.networked_uas_disconnect import ( + NetworkedUASDisconnect as CommonNetworkedUASDisconnect, +) + + +class NetworkedUASDisconnect(TestScenario, CommonNetworkedUASDisconnect): + @property + def _rid_version(self) -> RIDVersion: + return RIDVersion.f3411_19 diff --git a/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/__init__.py b/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/__init__.py index c6ecd1745b..0bd150fa1b 100644 --- a/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/__init__.py +++ b/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/__init__.py @@ -1,4 +1,5 @@ from .dss_interoperability import DSSInteroperability +from .networked_uas_disconnect import NetworkedUASDisconnect from .nominal_behavior import NominalBehavior from .misbehavior import Misbehavior from .aggregate_checks import AggregateChecks diff --git a/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/networked_uas_disconnect.md b/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/networked_uas_disconnect.md new file mode 100644 index 0000000000..f4570a0a29 --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/networked_uas_disconnect.md @@ -0,0 +1,129 @@ +# ASTM NetRID networked UAS disconnection test scenario + +## Overview + +In this scenario, a single nominal flight simulating a disconnection is injected into each NetRID Service Provider (SP) under test. Each of the injected flights is expected to be visible to the uss_qualifier, which will check that every SP behaves correctly when a flight disconnects. + +Note that disconnections are simulated by not injecting any telemetry anymore. As such, within the test framework, a disconnected flight cannot be distinguished from a flight that ended normally. + +This scenario evaluates that SPs correctly behave once they stop receiving telemetry for a flight. + +## Resources + +### flights_data + +A [`FlightDataResource`](../../../../resources/netrid/flight_data.py) containing 1 nominal flight per SP under test. + +### service_providers + +A set of [`NetRIDServiceProviders`](../../../../resources/netrid/service_providers.py) to be tested via the injection of RID flight data. This scenario requires at least one SP under test. + +### evaluation_configuration + +This [`EvaluationConfigurationResource`](../../../../resources/netrid/evaluation.py) defines how to gauge success when observing the injected flights. + +### dss_pool + +uss_qualifier acts as a Display Provider querying the Service Provider(s) under test. As such, it will query an instance from the provided [`DSSInstanceResource`](../../../../resources/astm/f3411/dss.py) to obtain the relevant identification service areas and then query the corresponding USSs. + +## Networked UAS disconnect test case + +### Injection test step + +In this step, uss_qualifier injects a single nominal flight into each SP under test, usually with a start time in the future. Each SP is expected to queue the provided telemetry and later simulate that telemetry coming from an aircraft at the designated timestamps. + +#### Successful injection check + +Per **[interuss.automated_testing.rid.injection.UpsertTestSuccess](../../../../requirements/interuss/automated_testing/rid/injection.md)**, the injection attempt of the valid flight should succeed for every NetRID Service Provider under test. + +**[astm.f3411.v22a.NET0500](../../../../requirements/astm/f3411/v22a.md)** requires a Service Provider to provide a persistently supported test instance of their implementation. +This check will fail if the flight was not successfully injected. + +#### Valid flight check + +TODO: Validate injected flights, especially to make sure they contain the specified injection IDs + +Per **[interuss.automated_testing.rid.injection.UpsertTestResult](../../../../requirements/interuss/automated_testing/rid/injection.md)**, the NetRID Service Provider under test should only make valid modifications to the injected flights. This includes: +* A flight with the specified injection ID must be returned. + +#### Identifiable flights check + +This particular test requires each flight to be uniquely identifiable by its 2D telemetry position; the same (lat, lng) pair may not appear in two different telemetry points, even if the two points are in different injected flights. This should generally be achieved by injecting appropriate data. + +### Service Provider polling test step + +If a DSS was provided to this test scenario, uss_qualifier acts as a Display Provider to query Service Providers under test in this step. + +#### ISA query check + +**[interuss.f3411.dss_endpoints.SearchISAs](../../../../requirements/interuss/f3411/dss_endpoints.md)** requires a USS providing a DSS instance to implement the DSS endpoints of the OpenAPI specification. If uss_qualifier is unable to query the DSS for ISAs, this check will fail. + +#### [Flight presence checks](./display_data_evaluator_flight_presence.md) + +#### Flights data format check + +**[astm.f3411.v22a.NET0710,1](../../../../requirements/astm/f3411/v22a.md)** and **[astm.f3411.v22a.NET0340](../../../../requirements/astm/f3411/v22a.md)** requires a Service Provider to implement the P2P portion of the OpenAPI specification. This check will fail if the response to the /flights endpoint does not validate against the OpenAPI-specified schema. + +#### [Flight consistency with Common Data Dictionary checks](./common_dictionary_evaluator_sp_flight.md) + +#### Recent positions timestamps check +**[astm.f3411.v22a.NET0270](../../../../requirements/astm/f3411/v22a.md)** requires all recent positions to be within the NetMaxNearRealTimeDataPeriod. This check will fail if any of the reported positions are older than the maximally allowed period plus NetSpDataResponseTime99thPercentile. + +#### Recent positions for aircraft crossing the requested area boundary show only one position before or after crossing check +**[astm.f3411.v22a.NET0270](../../../../requirements/astm/f3411/v22a.md)** requires that when an aircraft enters or leaves the queried area, the last or first reported position outside the area is provided in the recent positions, as long as it is not older than NetMaxNearRealTimeDataPeriod. + +This implies that any recent position outside the area must be either preceded or followed by a position inside the area. + +(This check validates NET0270 b and c). + +#### ⚠️ Disconnected flight is shown as such check + +For a networked UAS that loses connectivity during a flight, its associated Service Provider is required to provide any Display Provider requesting data for the flight with the most recent position with the indication that the UAS is disconnected, as per **[astm.f3411.v22a.NET0320](../../../../requirements/astm/f3411/v22a.md)**. + +Service providers are expected to convey to clients that a flight is not sending any telemetry by providing the last received telemetry, including its timestamp. Clients are expected to deduce that a flight is disconnected when its telemetry is getting stale. + +Service providers that return anything else than the last received telemetry during `NetMaxNearRealTimeDataPeriodSeconds` (60) after a flight stops disconnects will fail this check. + +#### Successful flight details query check + +**[astm.f3411.v22a.NET0710,2](../../../../requirements/astm/f3411/v22a.md)** and **[astm.f3411.v22a.NET0340](../../../../requirements/astm/f3411/v22a.md) require a Service Provider to implement the GET flight details endpoint. This check will fail if uss_qualifier cannot query that endpoint (specified in the ISA present in the DSS) successfully. + +#### Flight details data format check + +**[astm.f3411.v22a.NET0710,2](../../../../requirements/astm/f3411/v22a.md)** and **[astm.f3411.v22a.NET0340](../../../../requirements/astm/f3411/v22a.md) require a Service Provider to implement the P2P portion of the OpenAPI specification. This check will fail if the response to the flight details endpoint does not validate against the OpenAPI-specified schema. + +#### [Flight details consistency with Common Data Dictionary checks](./common_dictionary_evaluator_sp_flight_details.md) + +#### Successful observation check + +Per **[interuss.automated_testing.rid.observation.ObservationSuccess](../../../../requirements/interuss/automated_testing/rid/observation.md)**, the call to each observer is expected to succeed since a valid view was provided by uss_qualifier. + +#### [Clustering checks](./display_data_evaluator_clustering.md) + +#### Duplicate flights check + +Per **[interuss.automated_testing.rid.observation.UniqueFlights](../../../../requirements/interuss/automated_testing/rid/observation.md)**, the same flight ID may not be reported by a Display Provider for two flights in the same observation. + +#### [Flight presence checks](./display_data_evaluator_flight_presence.md) + +#### [Flight consistency with Common Data Dictionary checks](./common_dictionary_evaluator_dp_flight.md) + +#### Telemetry being used when present check + +**[astm.f3411.v22a.NET0290](../../../../requirements/astm/f3411/v22a.md)** requires a SP uses Telemetry vs extrapolation when telemetry is present. + +#### [Flight details consistency with Common Data Dictionary checks](./common_dictionary_evaluator_dp_flight_details.md) + +### Verify all disconnected flights have been observed as disconnected test step + +#### ⚠️ All injected disconnected flights have been observed as disconnected check + +**[astm.f3411.v22a.NET0320](../../../../requirements/astm/f3411/v22a.md)** requires that a Service Provider continues providing the last received telemetry for a flight that has been disconnected. This check will fail if any of the injected flights simulating a connectivity loss is not observed as disconnected within the window of `NetMaxNearRealTimeDataPeriodSeconds` (60) after the disconnection occurs. + +## Cleanup + +The cleanup phase of this test scenario attempts to remove injected data from all SPs. + +### Successful test deletion check + +**[interuss.automated_testing.rid.injection.DeleteTestSuccess](../../../../requirements/interuss/automated_testing/rid/injection.md)** diff --git a/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/networked_uas_disconnect.py b/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/networked_uas_disconnect.py new file mode 100644 index 0000000000..28c14aab2c --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/networked_uas_disconnect.py @@ -0,0 +1,11 @@ +from monitoring.monitorlib.rid import RIDVersion +from monitoring.uss_qualifier.scenarios.scenario import TestScenario +from monitoring.uss_qualifier.scenarios.astm.netrid.common.networked_uas_disconnect import ( + NetworkedUASDisconnect as CommonNetworkedUASDisconnect, +) + + +class NetworkedUASDisconnect(TestScenario, CommonNetworkedUASDisconnect): + @property + def _rid_version(self) -> RIDVersion: + return RIDVersion.f3411_22a diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md index b5c79ed78c..b5972a5bb0 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md @@ -4,12 +4,13 @@ ## [Actions](../../README.md#actions) -1. Action generator: [`action_generators.astm.f3411.ForEachDSS`](../../../action_generators/astm/f3411/for_each_dss.py) +1. Scenario: [ASTM NetRID networked UAS disconnection](../../../scenarios/astm/netrid/v19/networked_uas_disconnect.md) ([`scenarios.astm.netrid.v19.NetworkedUASDisconnect`](../../../scenarios/astm/netrid/v19/networked_uas_disconnect.py)) +2. Action generator: [`action_generators.astm.f3411.ForEachDSS`](../../../action_generators/astm/f3411/for_each_dss.py) 1. Suite: [DSS testing for ASTM NetRID F3411-19](f3411_19/dss_probing.md) ([`suites.astm.netrid.f3411_19.dss_probing`](f3411_19/dss_probing.yaml)) -2. Scenario: [ASTM NetRID nominal behavior](../../../scenarios/astm/netrid/v19/nominal_behavior.md) ([`scenarios.astm.netrid.v19.NominalBehavior`](../../../scenarios/astm/netrid/v19/nominal_behavior.py)) -3. Scenario: [ASTM NetRID SP clients misbehavior handling](../../../scenarios/astm/netrid/v19/misbehavior.md) ([`scenarios.astm.netrid.v19.Misbehavior`](../../../scenarios/astm/netrid/v19/misbehavior.py)) -4. Scenario: [ASTM NetRID: Operator interactions](../../../scenarios/astm/netrid/v19/operator_interactions.md) ([`scenarios.astm.netrid.v19.OperatorInteractions`](../../../scenarios/astm/netrid/v19/operator_interactions.py)) -5. Scenario: [ASTM F3411-19 NetRID aggregate checks](../../../scenarios/astm/netrid/v19/aggregate_checks.md) ([`scenarios.astm.netrid.v19.AggregateChecks`](../../../scenarios/astm/netrid/v19/aggregate_checks.py)) +3. Scenario: [ASTM NetRID nominal behavior](../../../scenarios/astm/netrid/v19/nominal_behavior.md) ([`scenarios.astm.netrid.v19.NominalBehavior`](../../../scenarios/astm/netrid/v19/nominal_behavior.py)) +4. Scenario: [ASTM NetRID SP clients misbehavior handling](../../../scenarios/astm/netrid/v19/misbehavior.md) ([`scenarios.astm.netrid.v19.Misbehavior`](../../../scenarios/astm/netrid/v19/misbehavior.py)) +5. Scenario: [ASTM NetRID: Operator interactions](../../../scenarios/astm/netrid/v19/operator_interactions.md) ([`scenarios.astm.netrid.v19.OperatorInteractions`](../../../scenarios/astm/netrid/v19/operator_interactions.py)) +6. Scenario: [ASTM F3411-19 NetRID aggregate checks](../../../scenarios/astm/netrid/v19/aggregate_checks.md) ([`scenarios.astm.netrid.v19.AggregateChecks`](../../../scenarios/astm/netrid/v19/aggregate_checks.py)) ## [Checked requirements](../../README.md#checked-requirements) @@ -21,7 +22,7 @@ Checked in - astm
.f3411
.v19
+ astm
.f3411
.v19
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -254,7 +255,7 @@ NET0260,NearRealTime Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,NetSpDataResponseTime95thPercentile @@ -269,77 +270,82 @@ NET0260,Table1,10 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,11 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,13 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,15 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,16 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,17 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,18 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,19 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,20 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,3 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,5 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,9 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0270 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0290 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior + + + NET0320 + Implemented + ASTM NetRID networked UAS disconnection NET0340 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0420 @@ -359,32 +365,32 @@ NET0450 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,3 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0480 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0490 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0500 Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0610 Implemented + TODO - ASTM NetRID nominal behavior
ASTM NetRID: Operator interactions + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior
ASTM NetRID: Operator interactions NET0620 @@ -394,7 +400,7 @@ NET0710,1 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0710,2 @@ -410,33 +416,33 @@ interuss
.automated_testing
.rid
.injection
DeleteTestSuccess Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior ExpectedBehavior Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UpsertTestResult TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UpsertTestSuccess Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior interuss
.automated_testing
.rid
.observation
ObservationSuccess Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UniqueFlights Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior interuss
.f3411
.dss_endpoints
@@ -447,6 +453,6 @@ SearchISAs Implemented - ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Token Validation
ASTM NetRID nominal behavior + ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Token Validation
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.yaml b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.yaml index 8bba99aed7..49439e72f4 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.yaml +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.yaml @@ -12,6 +12,14 @@ resources: problematically_big_area: resources.VerticesResource test_exclusions: resources.dev.TestExclusionsResource? actions: + - test_scenario: + scenario_type: scenarios.astm.netrid.v19.NetworkedUASDisconnect + resources: + flights_data: flights_data + service_providers: service_providers + evaluation_configuration: evaluation_configuration + dss_pool: dss_instances + on_failure: Continue - action_generator: generator_type: action_generators.astm.f3411.ForEachDSS resources: diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md index ca7e03fcd7..51e12ae999 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md @@ -4,12 +4,13 @@ ## [Actions](../../README.md#actions) -1. Action generator: [`action_generators.astm.f3411.ForEachDSS`](../../../action_generators/astm/f3411/for_each_dss.py) +1. Scenario: [ASTM NetRID networked UAS disconnection](../../../scenarios/astm/netrid/v22a/networked_uas_disconnect.md) ([`scenarios.astm.netrid.v22a.NetworkedUASDisconnect`](../../../scenarios/astm/netrid/v22a/networked_uas_disconnect.py)) +2. Action generator: [`action_generators.astm.f3411.ForEachDSS`](../../../action_generators/astm/f3411/for_each_dss.py) 1. Suite: [DSS testing for ASTM NetRID F3411-22a](f3411_22a/dss_probing.md) ([`suites.astm.netrid.f3411_22a.dss_probing`](f3411_22a/dss_probing.yaml)) -2. Scenario: [ASTM NetRID nominal behavior](../../../scenarios/astm/netrid/v22a/nominal_behavior.md) ([`scenarios.astm.netrid.v22a.NominalBehavior`](../../../scenarios/astm/netrid/v22a/nominal_behavior.py)) -3. Scenario: [ASTM NetRID SP clients misbehavior handling](../../../scenarios/astm/netrid/v22a/misbehavior.md) ([`scenarios.astm.netrid.v22a.Misbehavior`](../../../scenarios/astm/netrid/v22a/misbehavior.py)) -4. Scenario: [ASTM NetRID: Operator interactions](../../../scenarios/astm/netrid/v22a/operator_interactions.md) ([`scenarios.astm.netrid.v22a.OperatorInteractions`](../../../scenarios/astm/netrid/v22a/operator_interactions.py)) -5. Scenario: [ASTM F3411-22a NetRID aggregate checks](../../../scenarios/astm/netrid/v22a/aggregate_checks.md) ([`scenarios.astm.netrid.v22a.AggregateChecks`](../../../scenarios/astm/netrid/v22a/aggregate_checks.py)) +3. Scenario: [ASTM NetRID nominal behavior](../../../scenarios/astm/netrid/v22a/nominal_behavior.md) ([`scenarios.astm.netrid.v22a.NominalBehavior`](../../../scenarios/astm/netrid/v22a/nominal_behavior.py)) +4. Scenario: [ASTM NetRID SP clients misbehavior handling](../../../scenarios/astm/netrid/v22a/misbehavior.md) ([`scenarios.astm.netrid.v22a.Misbehavior`](../../../scenarios/astm/netrid/v22a/misbehavior.py)) +5. Scenario: [ASTM NetRID: Operator interactions](../../../scenarios/astm/netrid/v22a/operator_interactions.md) ([`scenarios.astm.netrid.v22a.OperatorInteractions`](../../../scenarios/astm/netrid/v22a/operator_interactions.py)) +6. Scenario: [ASTM F3411-22a NetRID aggregate checks](../../../scenarios/astm/netrid/v22a/aggregate_checks.md) ([`scenarios.astm.netrid.v22a.AggregateChecks`](../../../scenarios/astm/netrid/v22a/aggregate_checks.py)) ## [Checked requirements](../../README.md#checked-requirements) @@ -21,7 +22,7 @@ Checked in - astm
.f3411
.v22a
+ astm
.f3411
.v22a
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -259,7 +260,7 @@ NET0260,NearRealTime Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,NetSpDataResponseTime95thPercentile @@ -274,117 +275,122 @@ NET0260,Table1,1 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,10 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,11 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,12 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,14 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,16 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,17 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,18 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,19 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,1a Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,2 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,20 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,21 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,23 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,24 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,25 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,26 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,6 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,7 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,9 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0270 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0290 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior + + + NET0320 + Implemented + ASTM NetRID networked UAS disconnection NET0340 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0420 @@ -404,7 +410,7 @@ NET0450 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0460 @@ -414,107 +420,107 @@ NET0470 Implemented + TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,1 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,10 TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,11 TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,14 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,15 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,19 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,1a Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,2 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,20 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,23 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,24 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,25 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,26 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,5 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,7 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,9 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0480 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0490 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0500 Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0610 Implemented + TODO - ASTM NetRID nominal behavior
ASTM NetRID: Operator interactions + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior
ASTM NetRID: Operator interactions NET0620 @@ -524,12 +530,12 @@ NET0710,1 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0710,2 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0730 @@ -540,33 +546,33 @@ interuss
.automated_testing
.rid
.injection
DeleteTestSuccess Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior ExpectedBehavior Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UpsertTestResult TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UpsertTestSuccess Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior interuss
.automated_testing
.rid
.observation
ObservationSuccess Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UniqueFlights Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior interuss
.f3411
.dss_endpoints
@@ -577,6 +583,6 @@ SearchISAs Implemented - ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Token Validation
ASTM NetRID nominal behavior + ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Token Validation
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.yaml b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.yaml index d1644bf1e1..58a7e29a8f 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.yaml +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.yaml @@ -12,6 +12,14 @@ resources: problematically_big_area: resources.VerticesResource test_exclusions: resources.dev.TestExclusionsResource? actions: + - test_scenario: + scenario_type: scenarios.astm.netrid.v22a.NetworkedUASDisconnect + resources: + flights_data: flights_data + service_providers: service_providers + evaluation_configuration: evaluation_configuration + dss_pool: dss_instances + on_failure: Continue - action_generator: generator_type: action_generators.astm.f3411.ForEachDSS resources: diff --git a/monitoring/uss_qualifier/suites/uspace/network_identification.md b/monitoring/uss_qualifier/suites/uspace/network_identification.md index fed28dc075..311a27fca5 100644 --- a/monitoring/uss_qualifier/suites/uspace/network_identification.md +++ b/monitoring/uss_qualifier/suites/uspace/network_identification.md @@ -17,7 +17,7 @@ Checked in - astm
.f3411
.v22a
+ astm
.f3411
.v22a
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -255,7 +255,7 @@ NET0260,NearRealTime Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,NetSpDataResponseTime95thPercentile @@ -270,117 +270,122 @@ NET0260,Table1,1 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,10 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,11 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,12 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,14 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,16 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,17 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,18 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,19 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,1a Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,2 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,20 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,21 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,23 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,24 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,25 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,26 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,6 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,7 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,9 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0270 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0290 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior + + + NET0320 + Implemented + ASTM NetRID networked UAS disconnection NET0340 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0420 @@ -400,7 +405,7 @@ NET0450 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0460 @@ -410,107 +415,107 @@ NET0470 Implemented + TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,1 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,10 TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,11 TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,14 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,15 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,19 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,1a Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,2 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,20 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,23 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,24 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,25 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,26 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,5 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,7 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,9 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0480 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0490 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0500 Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0610 Implemented + TODO - ASTM NetRID nominal behavior
ASTM NetRID: Operator interactions + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior
ASTM NetRID: Operator interactions NET0620 @@ -520,12 +525,12 @@ NET0710,1 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0710,2 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0730 @@ -536,33 +541,33 @@ interuss
.automated_testing
.rid
.injection
DeleteTestSuccess Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior ExpectedBehavior Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UpsertTestResult TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UpsertTestSuccess Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior interuss
.automated_testing
.rid
.observation
ObservationSuccess Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UniqueFlights Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior interuss
.f3411
.dss_endpoints
@@ -573,7 +578,7 @@ SearchISAs Implemented - ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Token Validation
ASTM NetRID nominal behavior + ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Token Validation
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior uspace
.article8
diff --git a/monitoring/uss_qualifier/suites/uspace/required_services.md b/monitoring/uss_qualifier/suites/uspace/required_services.md index 1a19da1b8b..7c17daef68 100644 --- a/monitoring/uss_qualifier/suites/uspace/required_services.md +++ b/monitoring/uss_qualifier/suites/uspace/required_services.md @@ -18,7 +18,7 @@ Checked in - astm
.f3411
.v22a
+ astm
.f3411
.v22a
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -256,7 +256,7 @@ NET0260,NearRealTime Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,NetSpDataResponseTime95thPercentile @@ -271,117 +271,122 @@ NET0260,Table1,1 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,10 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,11 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,12 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,14 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,16 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,17 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,18 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,19 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,1a Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,2 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,20 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,21 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,23 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,24 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,25 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,26 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,6 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,7 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0260,Table1,9 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0270 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0290 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior + + + NET0320 + Implemented + ASTM NetRID networked UAS disconnection NET0340 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0420 @@ -401,7 +406,7 @@ NET0450 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0460 @@ -411,107 +416,107 @@ NET0470 Implemented + TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,1 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,10 TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,11 TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,14 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,15 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,19 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,1a Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,2 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,20 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,23 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,24 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,25 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,26 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,5 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,7 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0470,Table1,9 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0480 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0490 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0500 Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0610 Implemented + TODO - ASTM NetRID nominal behavior
ASTM NetRID: Operator interactions + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior
ASTM NetRID: Operator interactions NET0620 @@ -521,12 +526,12 @@ NET0710,1 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0710,2 Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior NET0730 @@ -959,33 +964,33 @@ interuss
.automated_testing
.rid
.injection
DeleteTestSuccess Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior ExpectedBehavior Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UpsertTestResult TODO - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UpsertTestSuccess Implemented - ASTM NetRID SP clients misbehavior handling
ASTM NetRID nominal behavior + ASTM NetRID SP clients misbehavior handling
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior interuss
.automated_testing
.rid
.observation
ObservationSuccess Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior UniqueFlights Implemented - ASTM NetRID nominal behavior + ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior interuss
.f3411
.dss_endpoints
@@ -996,7 +1001,7 @@ SearchISAs Implemented - ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Token Validation
ASTM NetRID nominal behavior + ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Token Validation
ASTM NetRID networked UAS disconnection
ASTM NetRID nominal behavior interuss
.f3548
.notification_requirements