DEENESPTFRRUARHIKOZHNL

module ara::nm — Network Management

Diese Seite wurde vollständig KI-generiert auf Basis von SWS NetworkManagement (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.

Guide du moduleGÉNÉRÉ PAR IA

Coordonne les requêtes de réseau et surveille l'état de communication des réseaux partiels pour le State Management de niveau supérieur.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 1062a859c813 Provenance Questions ouvertes (1)
Ancre causale : R25-11 Valable à partir de R25-11 Synthétisé pour cette version de spécification.
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Coordonne les requêtes de réseau et surveille l'état de communication des réseaux partiels pour le State Management de niveau supérieur.

Le cluster fonctionnel Network Management met à la disposition du State Management des interfaces pour demander de manière coordonnée des handles de réseau logiques, des réseaux partiels et des canaux de communication physiques, ainsi que pour interroger leur état ([SWS_ANM_01000], EXP_SWArchitecture p. 77). La classe NetworkHandle permet de piloter les états cibles et effectifs entre kNoCom et kFullCom et d'enregistrer des notificateurs asynchrones ([SWS_ANM_01009], [SWS_ANM_01010], [SWS_ANM_01358]). L'utilisation de l'interface est exclusivement réservée au State Management, tandis que les erreurs sont signalées de manière uniforme via NmErrorDomain ([SWS_ANM_01101], [SWS_ANM_01111]).

Le cluster fonctionnel Network Management (NM) fournit à l'AUTOSAR Adaptive Platform des mécanismes pour la demande et la surveillance d'état de réseaux de communication et de réseaux partiels. L'interface de programmation s'adresse exclusivement au cluster fonctionnel State Management, qui contrôle les ressources réseau via des instances logiques de la classe NetworkHandle et est découplé des structures de bus physiques telles qu'Ethernet ou CAN ([SWS_ANM_01000], EXP_SWArchitecture p. 77, EXP_PlatformDesign p. 60).

Architecture cluster_sm State Management (Daemon) cluster_api ara::nm API cluster_nm Functional Cluster Network Management (Daemon) cluster_bus Physikalische Netzwerke / Busse sm State Management (Koordination / Anforderung) nh NetworkHandle (C++ Port-Interface) sm->nh Nutzt API pnsm Partial Network State Machines (PN1, PN2, ...) nh->pnsm Steuert / Fragt ab nm_inst NM Instances (Network State Machines) pnsm->nm_inst Koordiniert phys Ethernet / CAN Channels nm_inst->phys Bus-Keep-Alive / Sleep

Diagramme de contexte : intégration systémique du cluster fonctionnel Network Management entre le State Management et le niveau de réseau physique. Sources : SWS_NetworkManagement p. 13, EXP_PlatformDesign p. 60, [SWS_ANM_01000]

Un NetworkHandle est initialisé via un ara::core::InstanceSpecifier et prend en charge les opérations de déplacement, tandis que le constructeur de copie et l'affectation par copie sont supprimés ([SWS_ANM_01001], [SWS_ANM_01003], [SWS_ANM_01005]). Le module fait la distinction entre l'état de requête défini (SetNetworkRequestedState, GetNetworkRequestedState) et l'état de réseau réellement actif (GetNetworkState), chacun étant représenté par NetworkStateType avec les états kNoCom et kFullCom ([SWS_ANM_01007], [SWS_ANM_01008], [SWS_ANM_01009], [SWS_ANM_01358]).

Déroulement de la demande réseau et notification d'étatState ManagementNetworkHandleNM DaemonUse Case: Notifier-RegistrierungRegisterNetworkStateChangeNotifier(notifier)Result<void> (Erfolg)Use Case: NetzanforderungSetNetworkRequestedState(kFullCom)Netzwerkressource anfordernAktivierung PNC / KanalPNSM-ZustandswechselSignalisiere Zustandswechsel (kFullCom)notifier(kFullCom) CallbackUse Case: ZustandsabfrageGetNetworkState()Result<NetworkStateType> (kFullCom)

Diagramme de séquence : flux d'interaction lors de l'enregistrement de notificateur, de la demande d'état et de l'interrogation d'état. Sources : [SWS_ANM_01007], [SWS_ANM_01009], [SWS_ANM_01010], SWS_StateManagement p. 38

Pour la signalisation asynchrone des changements d'état, des callbacks peuvent être enregistrés via RegisterNetworkStateChangeNotifier ou RegisterNetworkRequestedStateChangeNotifier – en option avec leur propre exécuteur – ([SWS_ANM_01010], [SWS_ANM_01014], [SWS_ANM_01020]). Les erreurs sont indiquées via NmErrorDomain et NmErrc ; des codes standardisés tels que kServiceNotAvailable et kInvalidHandler garantissent un traitement déterministe des pannes et des configurations erronées ([SWS_ANM_01101], [SWS_ANM_01111]).

Rôle systémique et délimitation de l'architecture fonctionnelle

Le cluster fonctionnel Network Management (NM) assure, au sein de l'AUTOSAR Adaptive Platform, la gestion coordonnée des réseaux de communication et des réseaux partiels (Partial Networks, PN). L'interface de programmation du module n'est pas destinée à des Adaptive Applications quelconques, mais sert spécifiquement au cluster fonctionnel State Management (SM) afin de demander ou de libérer des capacités de communication en fonction des besoins ([SWS_ANM_01000], EXP_SWArchitecture p. 77). Le State Management agit en tant qu'orchestrateur système central de la machine et contrôle les groupes de fonctions ainsi que les états de plateforme, tandis que le Network Management encapsule la surveillance effective du bus, la logique de réseau partiel et les états de maintien d'activité (keep-alive) du bus (SWS_NetworkManagement p. 13, EXP_PlatformDesign p. 60).

Sur le plan architectural, le Network Management découple les contrôles d'état de niveau supérieur de la topologie de réseau physique telle que les réseaux Ethernet ou CAN via des handles de réseau logiques (NetworkHandle) (EXP_PlatformDesign p. 60). Une requête de réseau émise par le State Management est mappée en interne sur des machines à états spécifiques au canal et sur des Partial Network State Machines (PNSM), ce qui synchronise la communication sur les canaux physiques et l'active ou l'arrête en fonction des besoins (SWS_NetworkManagement p. 18, SWS_StateManagement p. 17).

Architecture cluster_sm State Management (Daemon) cluster_api ara::nm API cluster_nm Functional Cluster Network Management (Daemon) cluster_bus Physikalische Netzwerke / Busse sm State Management (Koordination / Anforderung) nh NetworkHandle (C++ Port-Interface) sm->nh Nutzt API pnsm Partial Network State Machines (PN1, PN2, ...) nh->pnsm Steuert / Fragt ab nm_inst NM Instances (Network State Machines) pnsm->nm_inst Koordiniert phys Ethernet / CAN Channels nm_inst->phys Bus-Keep-Alive / Sleep

Diagramme de contexte : intégration systémique du cluster fonctionnel Network Management entre le State Management et le niveau de réseau physique. Sources : SWS_NetworkManagement p. 13, EXP_PlatformDesign p. 60, [SWS_ANM_01000]

Instanciation et gestion des ressources via NetworkHandle

L'accès fonctionnel à un réseau partiel concret ou à un canal de communication physique s'effectue via des instances de la classe NetworkHandle ([SWS_ANM_01000]). Un NetworkHandle est explicitement construit par la transmission d'un ara::core::InstanceSpecifier, qui référence de manière univoque le prototype de port associé d'un NetworkManagementPortInterface ([SWS_ANM_01001]). L'initialisation via ce constructeur est spécifiée comme étant thread-safe ([SWS_ANM_01001]).

La conception de l'interface de NetworkHandle suit des règles strictes de cycle de vie et de propriété : le constructeur de copie et l'opérateur d'affectation par copie sont explicitement supprimés (= delete), empêchant ainsi toute duplication non coordonnée d'instances de handle ([SWS_ANM_01005], [SWS_ANM_01006]). En revanche, le constructeur de déplacement et l'affectation par déplacement sont fournis afin de pouvoir transférer les ressources de manière contrôlée ([SWS_ANM_01003], [SWS_ANM_01004]). Interprétation : la copie étant interdite et seules les opérations de déplacement étant autorisées, l'architecture devrait imposer une sémantique de propriété exclusive par instance de handle afin d'exclure des enregistrements concurrents de notificateurs sur le même objet. Question Q-912cb5d1ddff2896 (ouverte) Le destructeur et l'affectation par déplacement sont explicitement définis comme non thread-safe, raison pour laquelle la gestion du cycle de vie d'un handle doit s'effectuer de manière synchronisée dans le State Management ([SWS_ANM_01002], [SWS_ANM_01004]).

Contrôle et interrogation des états de communication

Le module fait une distinction stricte entre l'état cible demandé (Requested State) et l'état effectif réellement actif (Network State) d'un handle de réseau ([SWS_ANM_01007], [SWS_ANM_01008]). Les deux états sont représentés via l'énumération NetworkStateType avec les valeurs kNoCom (valeur 0) et kFullCom (valeur 1) ([SWS_ANM_01358]). Par définition, l'état global n'est kFullCom que si la totalité, sans exception, des réseaux partiels ou complets associés au handle se trouvent dans l'état de communication FULL_COM ; dans le cas contraire, le statut est kNoCom ([SWS_ANM_01358]).

Via la méthode SetNetworkRequestedState, le State Management demande l'activation (kFullCom) ou la libération (kNoCom) du PNC, du VLAN ou du réseau physique correspondant ([SWS_ANM_01009], EXP_SWArchitecture p. 77). GetNetworkRequestedState permet d'interroger de manière synchrone la dernière valeur de requête définie ([SWS_ANM_01008]). L'état de fonctionnement réel pertinent pour le bus est quant à lui lu à l'aide de GetNetworkState, les deux méthodes d'interrogation étant déclarées thread-safe et encapsulant leur résultat dans un ara::core::Result ([SWS_ANM_01007], [SWS_ANM_01008]).

NetworkStateLifecycle kNoCom kNoCom (0) Inactif / tous les réseaux ne sont pas en FullCom kFullCom kFullCom (1) Tous les réseaux assignés en FullCom kNoCom->kFullCom SetNetworkRequestedState(kFullCom) / Aktivierung kFullCom->kNoCom SetNetworkRequestedState(kNoCom) / Freigabe

Diagramme d'état : transitions d'état du statut de réseau élémentaire NetworkStateType. Sources : [SWS_ANM_01358], [SWS_ANM_01007], [SWS_ANM_01009]

Surveillance d'état basée sur les événements et mécanismes de notification

Étant donné que les changements d'état au niveau du réseau parviennent avec retard en raison de participants au bus externes, de délais d'attente de messages ou de temps de démarrage asynchrones, NetworkHandle fournit des mécanismes de notification asynchrone via des fonctions de rappel de type NetworkStateChangeNotifier (std::function<void(const NetworkStateType&)>) ([SWS_ANM_01020]). RegisterNetworkStateChangeNotifier sert pour les modifications de l'état de réseau effectif ([SWS_ANM_01010]), tandis que les modifications de l'état demandé sont surveillées via RegisterNetworkRequestedStateChangeNotifier ([SWS_ANM_01012]).

Au maximum un seul notificateur peut être enregistré par handle et par type de surveillance ; chaque appel d'enregistrement ultérieur écrase le callback précédemment enregistré (EXP_SWArchitecture p. 77). UnregisterNetworkStateChangeNotifier ainsi que UnregisterNetworkRequestedStateChangeNotifier permettent d'annuler explicitement les enregistrements existants ([SWS_ANM_01011], [SWS_ANM_01013]). Pour un contrôle d'exécution étendu, des méthodes d'enregistrement basées sur des templates sont disponibles ; elles acceptent un exécuteur personnalisé (ExecutorT&& executor) afin de traiter la notification dans un contexte d'exécution ou un thread spécifique ([SWS_ANM_01014], [SWS_ANM_01015]).

Déroulement de la demande réseau et notification d'étatState ManagementNetworkHandleNM DaemonUse Case: Notifier-RegistrierungRegisterNetworkStateChangeNotifier(notifier)Result<void> (Erfolg)Use Case: NetzanforderungSetNetworkRequestedState(kFullCom)Netzwerkressource anfordernAktivierung PNC / KanalPNSM-ZustandswechselSignalisiere Zustandswechsel (kFullCom)notifier(kFullCom) CallbackUse Case: ZustandsabfrageGetNetworkState()Result<NetworkStateType> (kFullCom)

Diagramme de séquence : flux d'interaction lors de l'enregistrement de notificateur, de la demande d'état et de l'interrogation d'état. Sources : [SWS_ANM_01007], [SWS_ANM_01009], [SWS_ANM_01010], SWS_StateManagement p. 38

Modélisation de manifeste et configuration d'association

L'intégration du Network Management dans l'Adaptive Application s'effectue via des éléments de métamodèle standardisés dans le manifeste. L'interface NetworkManagementPortInterface spécialise la métaclasse fondamentale PortInterface et définit ainsi des prototypes de port formels (PPortPrototype, RPortPrototype) pour l'interaction avec le cluster (TPS_ManifestSpecification p. 263).

Dans le manifeste de déploiement, la liaison entre les instances d'application et la gestion de réseau logique est déclarée via l'élément de mappage NetworkHandlePortMapping (TPS_ManifestSpecification p. 620). Celui-ci associe un prototype de port au sein d'un processus (Process) à un NmNetworkHandle logique (TPS_ManifestSpecification p. 620). De plus, le couplage de coordination entre le cluster State Management (via NmInteractsWithSmMapping) et le handle de réseau (StateManagementStateRequest) est configuré de manière contraignante via l'élément de métamodèle NmNetworkHandle (TPS_ManifestSpecification p. 875).

ManifestMapping port PPortPrototype / RPortPrototype nm_port_if NetworkManagementPortInterface port->nm_port_if typisiert durch nh_mapping NetworkHandlePortMapping nh_mapping->port referenziert proc Process (Ausfuehrungskontext) nh_mapping->proc bindet an nm_handle NmNetworkHandle (Logischer Kanal) nh_mapping->nm_handle Mappe vers sm_mapping NmInteractsWithSmMapping sm_mapping->nm_handle verknuepft sm_req StateManagementStateRequest sm_mapping->sm_req steuert ueber

Diagramme de métamodèle : relations de configuration et de mappage ARXML entre ports, processus, handles et State Management. Sources : TPS_ManifestSpecification p. 263, TPS_ManifestSpecification p. 620, TPS_ManifestSpecification p. 875

Comportement en cas d'erreur

Pour un traitement uniforme des erreurs, le module implémente son propre domaine d'erreur conformément à l'architecture d'erreur d'AUTOSAR Adaptive. La classe NmErrorDomain hérite de ara::core::ErrorDomain et identifie les erreurs de la gestion de réseau via l'interrogation de domaine statique GetNmDomain ainsi que les méthodes d'identification Name et Message ([SWS_ANM_01101], [SWS_ANM_01105], [SWS_ANM_01106], [SWS_ANM_01107], [SWS_ANM_01109]).

Les causes d'erreur spécifiques sont définies dans l'énumération NmErrc ([SWS_ANM_01111]). Le code d'erreur NmErrc::kServiceNotAvailable (code 1) signale que le service de plateforme ou démon sous-jacent n'est pas joignable ; il peut survenir lors des méthodes GetNetworkState, GetNetworkRequestedState et SetNetworkRequestedState ([SWS_ANM_01007], [SWS_ANM_01008], [SWS_ANM_01009], [SWS_ANM_01111]). Le code d'erreur NmErrc::kInvalidHandler (code 2) est signalé lorsqu'un gestionnaire de notificateur non valide a été transmis à l'une des méthodes d'enregistrement ([SWS_ANM_01010], [SWS_ANM_01012], [SWS_ANM_01014], [SWS_ANM_01015], [SWS_ANM_01111]).

Les codes d'erreur sont convertis en objets ara::core::ErrorCode réguliers via MakeErrorCode ([SWS_ANM_01110]). Si les exceptions C++ sont autorisées et configurées dans les environnements d'exécution, ces erreurs peuvent être levées via ThrowAsException sous la forme d'une exception de type NmException ([SWS_ANM_01100], [SWS_ANM_01102], [SWS_ANM_01108]). Pour simplifier, les alias de type Errc et Exception sont mis à disposition ([SWS_ANM_01103], [SWS_ANM_01104]).

Preuves détaillées supplémentaires

Les prescriptions essentielles du module s'appuient sur des dispositions normatives de la spécification et des modèles d'architecture d'accompagnement :

Ce guide est basé sur la spécification d'AUTOSAR Adaptive version R25-11. Toutes les dispositions normatives et tous les éléments justificatifs d'architecture proviennent des documents et exigences référencés.

Spezifikation: AUTOSAR_AP_SWS_NetworkManagement.pdf (R25-11) · 30 API-Records

function: 17 class: 3 enumeration: 2 type alias: 3 header file: 2

Carte des thèmes

Vue détaillée

Sélectionnez une entrée dans le plan.

ara::nm

Zugang zu angefordertem und effektivem Netzstatus.

Fehlerdomäne für ara::nm.

Exception-Typ für ara::nm.

GetNmDomain fonction
constexpr const ara::core::ErrorDomain& GetNmDomain() noexcept;
MakeErrorCode fonction
constexpr ara::core::ErrorCode MakeErrorCode(NmErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
NmErrc énumération
enum class NmErrc : ara::core::ErrorDomain::CodeType { kServiceNotAvailable = 1, kInvalidHandler = 2 };

Diagramme d'architecture ou de séquence

G Vereinfachter NM-Netzzustand i no NO_COM / Bus-Sleep i->no repeat Repeat Message no->repeat kFullCom / Wake-up normal Normal Operation repeat->normal weiter angefordert ready Ready Sleep repeat->ready freigegeben normal->ready freigegeben ready->normal kFullCom prepare Prepare Bus-Sleep ready->prepare NM-Timeout prepare->no Wartezeit abgelaufen

Vereinfachte Darstellung der in SWS Kapitel 7 beschriebenen NM-Zustände. Quelle(n): SWS Network Management §7.4 und [SWS_ANM_00070]. Teilweise Interpretation: Darstellung reduziert Konfigurations- und Busdetails.

Namespace de l'API

Classes principales