DEENESPTFRRUARHIKOZHNL

Network Management Interface (Nm)

ModulNm (Network Management Interface)
BSW-Modul-ID29
Standard-Header#include "Nm.h"
SWS-SpezifikationAUTOSAR_CP_SWS_NetworkManagementInterface.pdf, AUTOSAR_SWS_NMInterface.pdf, AUTOSAR_SWS_NetworkManagementInterface.pdf
Umfang204 Records · 38 Snippets
ClusterKommunikationsdienste (COM)

Network Management Interface (Nm)

AUTOSAR Classic Communication Services-Modul Network Management Interface (Nm, Spezifikation: AUTOSAR_CP_SWS_NetworkManagementInterface.pdf, AUTOSAR_SWS_NMInterface.pdf, AUTOSAR_SWS_NetworkManagementInterface.pdf).

Funktionen — Übersicht

Typen — Übersicht

Anforderungen — Übersicht

Funktionen & Typen — Detailansicht

function Nm_Init [SWS_Nm_00030] 📄 PDF

void Nm_Init(const Nm_ConfigType* ConfigPtr);

Initializes the NM Interface.

function Nm_PassiveStartUp [SWS_Nm_00031] 📄 PDF

Std_ReturnType Nm_PassiveStartUp(NetworkHandleType NetworkHandle);

This function calls the <Bus>Nm_PassiveStartUp function in case NmBusType is not set to NM_BUSNM_LOCALNM (e.g. CanNm_PassiveStartUp function is called for NM_BUSNM_ CANNM).

function Nm_NetworkRequest [SWS_Nm_00032] 📄 PDF

Std_ReturnType Nm_NetworkRequest(NetworkHandleType NetworkHandle);

This function calls the <Bus>Nm_NetworkRequest (e.g. CanNm_NetworkRequest function is called if channel is configured as CAN) function in case NmBusType is not set to NM_BUSNM_ LOCALNM.

function Nm_DisableCommunication [SWS_Nm_00033] 📄 PDF

Std_ReturnType Nm_DisableCommunication(NetworkHandleType NetworkHandle);

Disables the NM PDU transmission ability. For that purpose <Bus>Nm_DisableCommunication shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM (e.g. CanNm_Disable Communication function is called if channel is configured as CAN).

function Nm_EnableCommunication [SWS_Nm_00034] 📄 PDF

Std_ReturnType Nm_EnableCommunication(NetworkHandleType NetworkHandle);

Enables the NM PDU transmission ability. For that purpose <Bus>Nm_EnableCommunication shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_Enable Communication function is called if channel is configured as CAN).

function Nm_SetUserData [SWS_Nm_00035] 📄 PDF

Std_ReturnType Nm_SetUserData(NetworkHandleType NetworkHandle, const uint8* nmUserDataPtr);

Set user data for NM messages transmitted next on the bus. For that purpose <Bus>Nm_Set UserData shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. Can Nm_SetUserData function is called if channel is configured as CAN).

function Nm_GetUserData [SWS_Nm_00036] 📄 PDF

Std_ReturnType Nm_GetUserData(NetworkHandleType NetworkHandle, uint8* nmUserDataPtr);

Get user data out of the last successfully received NM message. For that purpose <Bus>Nm_ GetUserData shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetUserData function is called if channel is configured as CAN).

function Nm_GetPduData [SWS_Nm_00037] 📄 PDF

Std_ReturnType Nm_GetPduData(NetworkHandleType NetworkHandle, uint8* nmPduData);

Get the whole PDU data out of the most recently received NM message. For that purpose <Bus Nm>_GetPduData shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetPduData function is called if channel is configured as CAN).

function Nm_RepeatMessageRequest [SWS_Nm_00038] 📄 PDF

Std_ReturnType Nm_RepeatMessageRequest(NetworkHandleType NetworkHandle);

Set Repeat Message Request Bit for NM messages transmitted next on the bus. For that purpose <Bus>Nm_RepeatMessageRequest shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_RepeatMessageRequest function is called if channel is configured as CAN). This will force all nodes on the bus to transmit NM messages so that they can be identified.

function Nm_GetNodeIdentifier [SWS_Nm_00039] 📄 PDF

Std_ReturnType Nm_GetNodeIdentifier(NetworkHandleType NetworkHandle, uint8* nmNodeIdPtr);

Get node identifier out of the last successfully received NM-message. The function <Bus>Nm_ GetNodeIdentifier shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetNodeIdentifier function is called if channel is configured as CAN).

function Nm_GetLocalNodeIdentifier [SWS_Nm_00040] 📄 PDF

Std_ReturnType Nm_GetLocalNodeIdentifier(NetworkHandleType NetworkHandle, uint8* nmNodeIdPtr);

Get node identifier configured for the local node. For that purpose <Bus>Nm_GetLocalNode Identifier shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. Can Nm_GetLocalNodeIdentifier function is called if channel is configured as CAN).

function Nm_CheckRemoteSleepIndication [SWS_Nm_00042] 📄 PDF

Std_ReturnType Nm_CheckRemoteSleepIndication(NetworkHandleType nmNetworkHandle, boolean* nmRemoteSleepIndPtr);

Check if remote sleep indication takes place or not. For that purpose <Bus>Nm_CheckRemote SleepIndication shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_CheckRemoteSleepIndication function is called if channel is configured as CAN).

function Nm_GetState [SWS_Nm_00043] 📄 PDF

Std_ReturnType Nm_GetState(NetworkHandleType nmNetworkHandle, Nm_StateType* nmStatePtr, Nm_ModeType* nmModePtr);

Returns the state of the network management. The function <Bus>Nm_GetState shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetState function is called if channel is configured as CAN).

function Nm_NetworkRelease [SWS_Nm_00046] 📄 PDF

Std_ReturnType Nm_NetworkRelease(NetworkHandleType NetworkHandle);

This function calls the <Bus>Nm_NetworkRelease bus specific function in case NmBusType is not set to NM_BUSNM_LOCALNM (e.g. CanNm_NetworkRelease function is called if channel is configured as CAN).

function Nm_StateChangeNotification [SWS_Nm_00114] 📄 PDF

void Nm_StateChangeNotification(NetworkHandleType nmNetworkHandle, Nm_StateType nmPreviousState, Nm_StateType nmCurrentState);

Notification that the state of the lower layer <Bus>Nm has changed.

function Nm_MainFunction [SWS_Nm_00118] 📄 PDF

void Nm_MainFunction(void);

This function implements the processes of the NM Interface, which need a fix cyclic scheduling.

function Nm_NetworkStartIndication [SWS_Nm_00154] 📄 PDF

void Nm_NetworkStartIndication(NetworkHandleType nmNetworkHandle);

Notification that a NM-message has been received in the Bus-Sleep Mode, what indicates that some nodes in the network have already entered the Network Mode.

function Nm_PrepareBusSleepMode [SWS_Nm_00159] 📄 PDF

void Nm_PrepareBusSleepMode(NetworkHandleType nmNetworkHandle);

Notification that the network management has entered Prepare Bus-Sleep Mode.

function Nm_RemoteSleepIndication [SWS_Nm_00192] 📄 PDF

void Nm_RemoteSleepIndication(NetworkHandleType nmNetworkHandle);

Notification that the network management has detected that all other nodes on the network are ready to enter Bus-Sleep Mode.

function Nm_RemoteSleepCancellation [SWS_Nm_00193] 📄 PDF

void Nm_RemoteSleepCancellation(NetworkHandleType nmNetworkHandle);

Notification that the network management has detected that not all other nodes on the network are longer ready to enter Bus-Sleep Mode.

function Nm_SynchronizationPoint [SWS_Nm_00194] 📄 PDF

void Nm_SynchronizationPoint(NetworkHandleType nmNetworkHandle);

Notification to the NM Coordinator functionality that this is a suitable point in time to initiate the coordinated shutdown on.

function Nm_RepeatMessageIndication [SWS_Nm_00230] 📄 PDF

void Nm_RepeatMessageIndication(NetworkHandleType nmNetworkHandle, boolean pnLearningBitSet);

Service to indicate that an NM message with set Repeat Message Re- quest Bit has been received. This is needed for node detection and the Dynamic PNC-to-channel-mapping feature.

function Nm_CarWakeUpIndication [SWS_Nm_00250] 📄 PDF

void Nm_CarWakeUpIndication(NetworkHandleType nmChannelHandle);

This function is called by a <Bus>Nm to indicate reception of a CWU request.

function Nm_CoordReadyToSleepIndication [SWS_Nm_00254] 📄 PDF

void Nm_CoordReadyToSleepIndication(NetworkHandleType nmChannelHandle);

Sets an indication, when the NM Coordinator Sleep Ready bit in the Control Bit Vector is set

function Nm_CoordReadyToSleepCancellation [SWS_Nm_00272] 📄 PDF

void Nm_CoordReadyToSleepCancellation(NetworkHandleType nmChannelHandle);

Cancels an indication, when the NM Coordinator Sleep Ready bit in the Control Bit Vector is set back to 0.

function Nm_PnLearningRequest [SWS_Nm_91003] 📄 PDF

Std_ReturnType Nm_PnLearningRequest(NetworkHandleType NetworkHandle);

Set Repeat Message Request Bit and Partial Network Learning Bit for NM messages transmitted next on the bus. For that purpose <Bus>Nm_PnLearningRequest shall be called (e.g. CanNm_PnLearningRequest function if channel is configured as CAN). This will force all nodes to enter the PNC Learning Phase and re-enter Repeat Message Stat. This is needed for the optional Dynamic PNC-to-channel-mapping feature.

function Nm_ForwardSynchronizedPncShutdown [SWS_Nm_91004] 📄 PDF

void Nm_ForwardSynchronizedPncShutdown(void);

Notification that the network management has received a PN shutdown message on a particular NM-channel. This is used to grant a nearly synchronized PNC shutdown across the entire PN topology. Tags: atp.Status=draft

function Nm_RequestSynchronizedPncShutdown [SWS_Nm_91005] 📄 PDF

Std_ReturnType Nm_RequestSynchronizedPncShutdown(NetworkHandleType NetworkHandle, PNCHandleType PncId);

This function store the request for a synchronized PNC shutdown of a particular PNC given by PncId per given NM-Channel. The handling of the synchronized PNC shutdown process is mainly done in the context of the Nm_Mainfunction. The function call is only valid if NmStandardBusType is not set to NM_BUSNM_LOCALNM as a <Bus>Nm like CanNm is needed to transmit the PNC shutdown requests.

function Nm_PncBitVectorRxIndication [SWS_Nm_91006] 📄 PDF

void Nm_PncBitVectorRxIndication(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr, boolean* RelevantPncRequestDetectedPtr);

Indication that a bus specific network management has received a NM message on a particular NM-channel that contain a PNC bit vector. This is used to aggregate the external PNC requests. The function evaluate if a relevant PNC request (PNC bit set to '1') is available in the given PNC bit vector. If a relevant PNC request is available (PNC bit passes the PNC bit vector filter), then the RelevantPncRequestDetectedPtr refers to a boolean with value set to TRUE. Otherwise refer to booelan with value set to FALSE. RelevantPncRequestDetectedPtr is evaluated by the callee <Bus>Nm module to qualify the further processing of the received NM-PDU.

function Nm_UpdateIRA [SWS_Nm_91007] 📄 PDF

void Nm_UpdateIRA(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr);

Indication by ComM of internal PNC requests. This is used to aggregate the internal PNC requests.

function Nm_PncBitVectorTxIndication [SWS_Nm_91008] 📄 PDF

void Nm_PncBitVectorTxIndication(NetworkHandleType NetworkHandle, uint8* PncBitVectorPtr);

Function called by <Bus>Nms to request the aggregated internal PNC requests for transmission within the Nm message.

function Nm_ForwardSynchronizedPncShutdown [SWS_Nm_91009] 📄 PDF

void Nm_ForwardSynchronizedPncShutdown(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr);

Notification that the network management has received a PN shutdown message on a particular NM-channel. This is used to grant a nearly synchronized PNC shutdown across the entire PN topology.

function Nm_PncBitVectorTxConfirmation [SWS_Nm_91010] 📄 PDF

void Nm_PncBitVectorTxConfirmation(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr, Std_ReturnType result);

Function called by <Bus>Nms to confirm the state of the transmission for the given PNC bit vector on the given NM-Channel.

requirement SWS_Nm_00001 [SWS_Nm_00001] 📄 PDF

The coordination algorithm shall be able to handle a topology where several coordinated busses are connected to one NM Coordinator .

requirement SWS_Nm_00002 [SWS_Nm_00002] 📄 PDF

As long as the node implementing the NM Coordinator is not ready to go to sleep on at least one of the busses in a coordination cluster (i.e. that it has actively requested the network), the NM Coordinator shall ensure that the network is requested on all currently active busses in that coordination cluster.

requirement SWS_Nm_00003 [SWS_Nm_00003] 📄 PDF

As long as at least one bus in the coordination cluster is not ready to sleep (i.e. because another node than the NM Coordinator is requesting that bus), the NM Coordinator shall still ensure that the network is requested on all currently active busses in that coordination cluster even if the local ECU itself is ready to go to sleep on all busses of that coordination cluster.

requirement SWS_Nm_00006 [SWS_Nm_00006] 📄 PDF

The Nm shall convert generic function calls from the ComM to bus specific functions of the bus specific NM layer.

requirement SWS_Nm_00012 [SWS_Nm_00012] 📄 PDF

The Nm shall convert callback functions called by the bus specific NM layers to generic callbacks to the ComM.

requirement SWS_Nm_00020 [SWS_Nm_00020] 📄 PDF

A scheduled main function shall only contain logic related to the NM Coordinator functionality .

requirement SWS_Nm_00028 [SWS_Nm_00028] 📄 PDF

All callbacks of the Nm shall assume that they can run either in task or in interrupt context.

requirement SWS_Nm_00051 [SWS_Nm_00051] 📄 PDF

The NM Coordinator shall be able to coordinate busses run- ning the official AUTOSAR bus specific NMs as well as all other generic bus NM s im- plementing the required functionality, callbacks and interfaces.

requirement SWS_Nm_00055 [SWS_Nm_00055] 📄 PDF

The NM Interface configuration shall provide the parameter Nm- CoordinatorSupportEnabled to define if the support of the NM Coordinator func- tionality is present or not.

requirement SWS_Nm_00091 [SWS_Nm_00091] 📄 PDF

The Base functionality of Nm may be implemented completely or partly using macros.

requirement SWS_Nm_00117 [SWS_Nm_00117] 📄 PDF

Module Header File Imported Type Com Com.h Com_SignalIdType ComStack_Types.h NetworkHandleType ComStack_Types ComStack_Types.h PNCHandleType Std_Types.h Std_ReturnType Std Std_Types.h Std_VersionInfoType

requirement SWS_Nm_00119 [SWS_Nm_00119] 📄 PDF

<Bus>Nm_GetState – Returns the state and the mode of the network management. <Bus>Nm_NetworkRelease – Release the network, since ECU doesn't have to communicate on the bus. <Bus>Nm_NetworkRequest – Request the network, since ECU needs to communicate on the bus. <Bus>Nm_PassiveStartUp – Passive startup of the NM. It triggers the transition from Bus-Sleep Mode to the Network Mode without requesting the network. ComM_Nm_BusSleepMode ComM_Nm.h Notification that the network management has entered Bus-Sleep Mode. This callback function should perform a transition of the hardware and transceiver to bus-sleep mode. ComM_Nm_NetworkMode ComM_Nm.h Notification that the network management has entered Network Mode. ComM_Nm_NetworkStartIndication ComM_Nm.h Indication that a NM-message has been received in the Bus Sleep Mode, what indicates that some nodes in the network have already entered the Network Mode. API Function Header File Description ComM_Nm_PrepareBusSleepMode ComM_Nm.h Notification that the network management has entered Prepare Bus-Sleep Mode. Reentrancy: Reentrant (but not for the same NM-Channel) ComM_Nm_RestartIndication ComM_Nm.h If NmIf has started to shut down the coordinated busses, AND not all coordinated busses have indicated bus sleep state, AND on at least on one of the coordinated busses NM is restarted, THEN the NM Interface shall call the callback function ComM_ Nm_RestartIndication with the nmNetworkHandle of the channels which have already indicated bus sleep state.

requirement SWS_Nm_00121 [SWS_Nm_00121] 📄 PDF

In case the main function is called before the Nm has been ini- tialized, the main function shall immediately return without yielding an error.

requirement SWS_Nm_00124 [SWS_Nm_00124] 📄 PDF

The following header files shall be included by the Nm Interface module: • Std_Types.h (for AUTOSAR standard types ) Note: Platform_Types.h (for platform specific types) is indirectly included via AUTOSAR standard types. • ComM_Nm.h (for Communication Manager callback functions) • BswM_Nm.h (If the BswM is used for CarWakeup-functionalitiy)

requirement SWS_Nm_00127 [SWS_Nm_00127] 📄 PDF

Caveats of Nm_Init : This service function has to be called af- ter the initialization of the respective bus interface.

requirement SWS_Nm_00128 [SWS_Nm_00128] 📄 PDF

Caveats of Nm_PassiveStartUp : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00129 [SWS_Nm_00129] 📄 PDF

Caveats of Nm_NetworkRequest : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00130 [SWS_Nm_00130] 📄 PDF

If Nm_NetworkRequest is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

requirement SWS_Nm_00131 [SWS_Nm_00131] 📄 PDF

Caveats of Nm_NetworkRelease : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00132 [SWS_Nm_00132] 📄 PDF

If Nm_NetworkRelease is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

requirement SWS_Nm_00133 [SWS_Nm_00133] 📄 PDF

Caveats of Nm_DisableCommunication : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00134 [SWS_Nm_00134] 📄 PDF

Configuration of Nm_DisableCommunication : This function is only available if NmComControlEnabled is set to TRUE .

requirement SWS_Nm_00135 [SWS_Nm_00135] 📄 PDF

Caveats of Nm_EnableCommunication : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00136 [SWS_Nm_00136] 📄 PDF

Configuration of Nm_EnableCommunication : This function is only available if NmComControlEnabled is set to TRUE .

requirement SWS_Nm_00137 [SWS_Nm_00137] 📄 PDF

Caveats of Nm_SetUserData : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00138 [SWS_Nm_00138] 📄 PDF

Configuration of Nm_SetUserData : This function is only avail- able if NmUserDataEnabled is set to TRUE .

requirement SWS_Nm_00139 [SWS_Nm_00139] 📄 PDF

Caveats of Nm_GetUserData : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00140 [SWS_Nm_00140] 📄 PDF

Configuration of Nm_GetUserData : This function is only avail- able if NmUserDataEnabled is set to TRUE .

requirement SWS_Nm_00141 [SWS_Nm_00141] 📄 PDF

Caveats of Nm_GetPduData : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00143 [SWS_Nm_00143] 📄 PDF

Caveats of Nm_RepeatMessageRequest : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00145 [SWS_Nm_00145] 📄 PDF

Caveats of Nm_GetNodeIdentifier : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00147 [SWS_Nm_00147] 📄 PDF

Caveats of Nm_GetLocalNodeIdentifier : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00149 [SWS_Nm_00149] 📄 PDF

Caveats of Nm_CheckRemoteSleepIndication : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00150 [SWS_Nm_00150] 📄 PDF

Configuration of Nm_CheckRemoteSleepIndication : This function is only available if NmRemoteSleepIndEnabled is set to TRUE .

requirement SWS_Nm_00151 [SWS_Nm_00151] 📄 PDF

Caveats of Nm_GetState : The <BusNm> and the Nm itself are initialized correctly.

requirement SWS_Nm_00155 [SWS_Nm_00155] 📄 PDF

The indication through callback function Nm_Network- StartIndication : shall be forwarded to ComM by calling the ComM_Nm_- NetworkStartIndication .

requirement SWS_Nm_00158 [SWS_Nm_00158] 📄 PDF

The indication through callback function Nm_NetworkMode : shall be forwarded to ComM by calling the ComM_Nm_NetworkMode .

requirement SWS_Nm_00161 [SWS_Nm_00161] 📄 PDF

The indication through callback function Nm_PrepareBus- SleepMode : shall be forwarded to ComM by calling ComM_Nm_PrepareBusSleep- Mode .

requirement SWS_Nm_00163 [SWS_Nm_00163] 📄 PDF

The indication through callback function Nm_BusSleepMode : shall be forwarded to ComM by calling the ComM_Nm_BusSleepMode .

requirement SWS_Nm_00164 [SWS_Nm_00164] 📄 PDF

Configuration of Nm_PduRxIndication : This function is only available if NmPduRxIndicationEnabled is set to TRUE.

requirement SWS_Nm_00165 [SWS_Nm_00165] 📄 PDF

Configuration of Nm_StateChangeNotification : This func- tion is only available if NmStateChangeIndEnabled is set to TRUE.

requirement SWS_Nm_00166 [SWS_Nm_00166] 📄 PDF

<Bus>Nm_ActivateTxPnShutdownMsg – NM indicate to activate the transmission of PN shutdown messages on the given NM-Channel. This results in transmission of a NM-PDU with PNSR bit set to 1 (PN shutdown message). <Bus>Nm_CheckRemoteSleep Indication – Check if remote sleep indication takes place or not. <Bus>Nm_DeactivateTxPnShutdown Msg – NM indicate to deactive the transmission of PN shutdown messages on the given NM-Channel. This result in transmission of a usual NM-PDUs with PNSR bit set to 0. <Bus>Nm_DisableCommunication – Disable the NM PDU transmission ability. <Bus>Nm_EnableCommunication – Enable the NM PDU transmission ability. <Bus>Nm_GetLocalNodeIdentifier – Get node identifier configured for the local node. <Bus>Nm_GetNodeIdentifier – Get node identifier out of the last successfully received NM-message. <Bus>Nm_GetPduData – Pointer where NM PDU shall be copied to. <Bus>Nm_GetUserData – Get user data out of the last successfully received NM message. <Bus>Nm_PnLearningRequest – – <Bus>Nm_RepeatMessageRequest – Request a Repeat Message Request to be transmitted next on the bus. <Bus>Nm_RequestBus Synchronization – Request bus synchronization. <Bus>Nm_RequestSynchronizedPnc Shutdown – – <Bus>Nm_SetSleepReadyBit – Set the NM Coordinator Sleep Ready bit in the Control Bit Vector <Bus>Nm_SetUserData – Set user data for NM messages transmitted next on the bus. API Function Header File Description BswM_Nm_CarWakeUpIndication BswM_Nm.h Function called by Nm to indicate a CarWakeup. Com_SendSignal Com.h The service Com_SendSignal updates the signal object identified by SignalId with the signal referenced by the SignalDataPtr parameter. ComM_Nm_ForwardSynchronizedPnc Shutdown ComM_Nm.h If an ECU in role of an intermediate PNC coordinator receives a PN shutdown message via a <Bus>Nm, then ComM is immediately indicated via ComM_ Nm_ForwardSynchronizedPncShutdown to forward the request for a synchronized PNC shutdown of the affected PNCs given by PncBitVectorPtr. Therefore, ComM will immediately release the affected PNC state machines and forward the PNC bit vector to the affected ComM Channels and the corresponding NM channels, respectively. Note: This supports a nearly synchronized PNC shutdown across the PN topology from the top-level PNC coordinator down to the subordinated PNC node. ComM_Nm_PncLearningBitIndication ComM_Nm.h Service to indicate that an NM message with set PNC Learning Bit has been received. ComM_Nm_RepeatMessageLeft Indication ComM_Nm.h Notification that the state of all <Bus>Nm has left RepeatMessage. This interface is used to indicate by the optional Dynamic PNC-to-channel-mapping feature to indicate that learning phase ends. ComM_Nm_UpdateEIRA ComM_Nm.h Function to indicate the current aggregated external / internal PNC request called by Nm. ComM_Nm_UpdateERA ComM_Nm.h Function to indicate the current external PNC request per channel called by Nm. Det_ReportError Det.h Service to report development errors.

requirement SWS_Nm_00167 [SWS_Nm_00167] 📄 PDF

It shall be possible to configure multiple NM coordination clusters that shall be coordinated independently.

requirement SWS_Nm_00168 [SWS_Nm_00168] 📄 PDF

Each bus shall belong to zero or one NM coordination cluster.

requirement SWS_Nm_00169 [SWS_Nm_00169] 📄 PDF

Shutdown shall only be coordinated on the presently awake net- works of a coordination cluster. Networks that are already in ”bus-sleep mode“ shall still be monitored but not coordinated.

requirement SWS_Nm_00171 [SWS_Nm_00171] 📄 PDF

When all networks of a coordination cluster are either ready to go to sleep or already in ”bus-sleep mode“ the NM Coordinator shall start the coordinated shutdown on all awake networks. The NM Coordinator shall eval- uate continuously if the coordinated shutdown can be started.

requirement SWS_Nm_00172 [SWS_Nm_00172] 📄 PDF

If the configuration parameter NmSynchronizingNetwork is TRUE for any of the busses in a coordination cluster, the coordination shutdown shall be delayed until a network that is configured as synchronizing network for this coordination cluster invoked Nm_SynchronizationPoint .

requirement SWS_Nm_00173 [SWS_Nm_00173] 📄 PDF

If not all conditions to start the coordinated shutdown have been met, or if the coordinated shutdown has already been started (but not aborted), calls to Nm_SynchronizationPoint shall be ignored.

requirement SWS_Nm_00174 [SWS_Nm_00174] 📄 PDF

If the configuration parameter NmSynchronizingNetwork is FALSE for all of the presently awake busses in a coordination cluster, the timers shall be started after all shutdown conditions have been met, without waiting for a call to Nm_SynchronizationPoint (). (see also [SWS_Nm_00172]).

requirement SWS_Nm_00175 [SWS_Nm_00175] 📄 PDF

When the coordinated shutdown is started, a shutdown de- lay timer shall be activated for each currently awake channel in the coordination clus- ter. Each timer shall be set to NmGlobalCoordinatorTime . In case NmBusType is not set to NM_BUSNM_LOCALNM additionally the shutdown time of the specific channel TSHUTDOWN_CHANNEL shall be subtracted.

requirement SWS_Nm_00176 [SWS_Nm_00176] 📄 PDF

When a shutdown timer expires for a network, Nm shall in case BusNmType is not set to NM_BUSNM_LOCALNM release the network by calling the <Bus>Nm_RequestBusSynchronization followed by <Bus>Nm_NetworkRe- lease . In case BusNmType is set to NM_BUSNM_LOCALNM Nm shall inform ComM about shutdown by calling ComM_Nm_BusSleepMode() .

requirement SWS_Nm_00177 [SWS_Nm_00177] 📄 PDF

Nm shall keep track of all networks that have been released but have not yet reported ”bus-sleep mode“. If the shutdown is aborted, these networks shall still be considered active networks.

requirement SWS_Nm_00181 [SWS_Nm_00181] 📄 PDF

The coordinated shutdown shall be aborted if any network in that NM Coordination Cluster , • indicates Nm_RemoteSleepCancellation or • indicates Nm_NetworkMode or • indicates Nm_CoordReadyToSleepCancellation • or the ComM request one of the networks with Nm_NetworkRequest or Nm_- PassiveStartUp .

requirement SWS_Nm_00182 [SWS_Nm_00182] 📄 PDF

If the coordinated shutdown is aborted, NM Coordinator shall call ComM_Nm_RestartIndication for all networks that already indicated ”bus sleep“.

requirement SWS_Nm_00183 [SWS_Nm_00183] 📄 PDF

If the coordinated shutdown is aborted, NM Coordinator shall in case BusNmType is not set NM_BUSNM_LOCALNM request the network from the <Bus>Nm 's for the networks that have not indicated ”bus sleep“. In case BusNmType is set to NM_BUSNM_LOCALNM Nm shall inform ComM about network startup by calling ComM_Nm_NetworkMode() .

requirement SWS_Nm_00185 [SWS_Nm_00185] 📄 PDF

If the coordination algorithm has been aborted, all con- ditions that guard the initiation of the coordinated shutdown shall be evaluated again.

requirement SWS_Nm_00228 [SWS_Nm_00228] 📄 PDF

If a bus of a coordination cluster has the parameter NmChannel- SleepMaster set to TRUE , the NM Coordinator shall consider that bus ready to sleep at all times and shall not await an invocation of Nm_RemoteSleepIndication from that bus before starting shutdown of that network.

requirement SWS_Nm_00232 [SWS_Nm_00232] 📄 PDF

Type of error Related error code Error value API service used without Nm interface initialization NM_E_UNINIT 0x00 API Service called with wrong parameter but not with NULL-pointer NM_E_INVALID_CHANNEL 0x01 API service called with a NULL pointer NM_E_PARAM_POINTER 0x02

requirement SWS_Nm_00233 [SWS_Nm_00233] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , all function calls containing a NetworkHandleType parameter shall raise the error NM_- E_INVALID_CHANNEL if the network parameter is not a configured network handle.

requirement SWS_Nm_00235 [SWS_Nm_00235] 📄 PDF

If a coordinated shutdown has been aborted and Nm re- ceives E_NOT_OK on a <Bus>Nm_NetworkRequest , that network shall not be con- sidered awake when the conditions for initiating a coordinated shutdown are evaluated again.

requirement SWS_Nm_00236 [SWS_Nm_00236] 📄 PDF

If a coordinated shutdown has been initiated and Nm re- ceives E_NOT_OK on a <Bus>Nm_NetworkRelease , the shutdown shall be imme- diately aborted. For all networks that have not entered ”bus-sleep mode“, Nm shall request the networks. This includes the network that indicated an error for <Bus> Nm_NetworkRelease . As soon as this has been done, the conditions for initiating coordinated shutdown can be evaluated again. This applies also to networks that were not actively participating in the current coordinated shutdown.

requirement SWS_Nm_00241 [SWS_Nm_00241] 📄 PDF

Configuration of Nm_SetUserData : If NmComUserDataSup- port is TRUE the API Nm_SetUserData shall not be available.

requirement SWS_Nm_00243 [SWS_Nm_00243] 📄 PDF

The Nm Interface shall optionally include the header file of De- fault Error Tracer (depending on the pre-processor switch NmDevErrorDetect, see ECUC_Nm_00203). • Det.h for service of the Default Error Tracer.

requirement SWS_Nm_00245 [SWS_Nm_00245] 📄 PDF

If the ComM calls Nm_PassiveStartUp () for a network that is part of a coordinated cluster of networks, the Nm coordinator functionality shall treat this call as if the ComM had called Nm_NetworkRequest (). In case BusNmType is not set to NM_BUSNM_LOCALNM the Nm shall forward a call of <Bus>Nm_NetworkRe- quest to the lower layer and accordingly, the network shall be counted as requested by the NM coordinator.

requirement SWS_Nm_00247 [SWS_Nm_00247] 📄 PDF

The code file structure shall not be defined within this specification completely. At this point it shall be pointed out that the code-file structure shall include the following files named:

requirement SWS_Nm_00249 [SWS_Nm_00249] 📄 PDF

If NmStateReportEnabled is set to TRUE and NmStateRe- portSignalRef is configured, when one of the state transitions mentioned in Table 7.4 occur, Nm_StateChangeNotification shall call Com_SendSignal(uint8, Com_SignalIdType, const void * ) for the signal referenced by NmStateRe- portSignalRef with the value according to Table 7.4

requirement SWS_Nm_00251 [SWS_Nm_00251] 📄 PDF

Configuration of Nm_CarWakeUpIndication : Optional If NmCarWakeUpRxEnabled is TRUE , The Nm shall provide the API Nm_CarWake- UpIndication .

requirement SWS_Nm_00252 [SWS_Nm_00252] 📄 PDF

If the <bus>Nm calls Nm_CarWakeUpIndication and NmCar- WakeUpCallout is defined, the NM Interface shall call the callout function defined by NmCarWakeUpCallout with nmNetworkHandle as parameter.

requirement SWS_Nm_00255 [SWS_Nm_00255] 📄 PDF

Configuration of Nm_CoordReadyToSleepIndication : Op- tional If NmCoordinatorSyncSupport is set to TRUE , the Nm shall provide the API Nm_- CoordReadyToSleepIndication .

requirement SWS_Nm_00256 [SWS_Nm_00256] 📄 PDF

The NM-Coordinator shall support two or more NM- Coordinators connected to the same NM Cluster .

requirement SWS_Nm_00257 [SWS_Nm_00257] 📄 PDF

On its passively coordinated channels a NM-Coordinator shall send Nm messages only if the node has a network management request pending or a connected network which is coordinated actively by that NM Coordinator is not ready to sleep.

requirement SWS_Nm_00259 [SWS_Nm_00259] 📄 PDF

The NM Coordinator shall set the NMcoordinatorSleepReady bit in the NM message via <Bus>Nm_SetSleepReadyBit to the value 1 at his actively coordinated channels, IF all nodes of the NM Coordination cluster are ready to sleep (RemoteSleepIndi- cation) AND IF NmSynchronizingNetwork is enabled a Nm_SynchronizationPoint () call has been received on the corresponding channel AND If all channels of this NM Coordination cluster are configured as NmActiveCo- ordinator == TRUE . AND If the NmBusType is not configured to NM_BUSNM_LOCALNM .

requirement SWS_Nm_00261 [SWS_Nm_00261] 📄 PDF

If Nm_CoordReadyToSleepIndication is received on a passively coordinated channel the NmCoordinator shall set the NMCoordinatorSleep- Ready bit to SET (1) via API call to <Bus>Nm_SetSleepReadyBit on all actively coordinated channels.

requirement SWS_Nm_00262 [SWS_Nm_00262] 📄 PDF

The NM Coordinator shall start coordinated shutdown af- ter the Sleep Ready Bit with SET status has been requested.

requirement SWS_Nm_00267 [SWS_Nm_00267] 📄 PDF

NM Coordinator shall set the NMCoordinatorSleepReady bit to UNSET (0) via API call to <Bus>Nm_SetSleepReadyBit on all actively coordinated channels if the coordinated shutdown has been aborted for any reason.

requirement SWS_Nm_00271 [SWS_Nm_00271] 📄 PDF

If Nm_CoordReadyToSleepCancellation is received on a passively coordinated channel the NmCoordinator shall set the NMCoordinatorSleep- Ready bit to UNSET (0) via API call to <Bus>Nm_SetSleepReadyBit on all actively coordinated channels.

requirement SWS_Nm_00273 [SWS_Nm_00273] 📄 PDF

Configuration of Nm_CoordReadyToSleepCancellation : Op- tional If NmCoordinatorSyncSupport is set to TRUE , the Nm shall provide the API Nm_- CoordReadyToSleepCancellation .

requirement SWS_Nm_00277 [SWS_Nm_00277] 📄 PDF

Configuration of Nm_RemoteSleepIndication : This function is only available if NmRemoteSleepIndEnabled is set to TRUE .

requirement SWS_Nm_00278 [SWS_Nm_00278] 📄 PDF

Configuration of Nm_RemoteSleepCancellation : This func- tion is only available if NmRemoteSleepIndEnabled is set to TRUE .

requirement SWS_Nm_00279 [SWS_Nm_00279] 📄 PDF

If NmCoordinatorSupportEnabled is set to TRUE, the Nm_- MainFunction API shall be available.

requirement SWS_Nm_00280 [SWS_Nm_00280] 📄 PDF

The functionality of coordinating nested sub busses shall be avail- able if the NmCoordinatorSyncSupport parameter is set to TRUE .

requirement SWS_Nm_00281 [SWS_Nm_00281] 📄 PDF

NmGlobalCoordinatorTime shall be set at least to the maxi- mum time needed to shut down all Networks coordinated.

requirement SWS_Nm_00283 [SWS_Nm_00283] 📄 PDF

The Configuration pointer ConfigPtr shall always have a NULL_PTR value.

requirement SWS_Nm_00284 [SWS_Nm_00284] 📄 PDF

If the NmGlobalCoordinatorTime is zero the shutdown delay timer of all channels shall also be zero.

requirement SWS_Nm_00285 [SWS_Nm_00285] 📄 PDF

If the <bus>Nm calls Nm_CarWakeUpIndication and Nm- CarWakeUpCallout is not defined, the NM Interface shall call the function BswM_Nm_CarWakeUpIndication with nmNetworkHandle as parameter.

requirement SWS_Nm_00286 [SWS_Nm_00286] 📄 PDF

If Nm_DisableCommunication is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

requirement SWS_Nm_00287 [SWS_Nm_00287] 📄 PDF

If Nm_EnableCommunication is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

requirement SWS_Nm_00288 [SWS_Nm_00288] 📄 PDF

If Nm_SetUserData is called with a network handle where Nm- PassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

requirement SWS_Nm_00289 [SWS_Nm_00289] 📄 PDF

If Nm_RepeatMessageRequest is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

requirement SWS_Nm_00290 [SWS_Nm_00290] 📄 PDF

If Nm_CheckRemoteSleepIndication is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any func- tionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

requirement SWS_Nm_00292 [SWS_Nm_00292] 📄 PDF

If the NM Coordinator functionality is configured, the con- figuration parameter NmCycletimeMainFunction shall be configured (see [SWS_Nm_00118]).

requirement SWS_Nm_00293 [SWS_Nm_00293] 📄 PDF

If on a coordinated network the coordinator detects a mode change to NM_MODE_SYNCHRONIZE , NM_MODE_PREPARE_BUS_SLEEP or NM_BUS_- SLEEP AND the coordinated cluster this network belongs to has not started the shut- down process AND if there is no internal network mode request for that channel by ComM, the coordinator shall treat this network as remote sleep and shall call <Bus> Nm_NetworkRelease for this network. If additionally for this network the configuration parameter NmSynchronizingNetwork is TRUE then the coordinator shall not wait for Nm_SynchronizationPoint on this network.

requirement SWS_Nm_00302 [SWS_Nm_00302] 📄 PDF

If NmPnEiraCalcEnabled is set to TRUE, then Nm shall provide the possibility to store external and internal requested PNCs combined over all NM- channels where NmPnEnabled is set to TRUE. At initialization the values of all PNCs within EIRA shall be set to 0 (PNC released).

requirement SWS_Nm_00305 [SWS_Nm_00305] 📄 PDF

If the reception of PN shutdown message via callback function Nm_ForwardSynchronizedPncShutdown is indicated, then Nm shall stop the ERA related monitoring of external PNC requests of the PNCs (see [SWS_Nm_00324])) which are indicated for an PNC shutdown (PNC bit set to '1') in the given PNC bit vector , set the corresponding ERA bits to '0' in the ERA of the indicated NM-channel and forward the indication to ComM with the corresponding ComMChan- nel by calling ComM_Nm_ForwardSynchronizedPncShutdown(<ComMChannel>, <PncBitVector>) .

requirement SWS_Nm_00308 [SWS_Nm_00308] 📄 PDF

The PNC bit vector filter algorithm shall evaluate the bytes of the given PNC bit vector in the context of Nm_PncBitVectorRxIndication .

requirement SWS_Nm_00310 [SWS_Nm_00310] 📄 PDF

Every bit (PNC bit) of the PNC bit vector represents one Par- tial Network Cluster (PNC). If the PNC bit is set to 1 the Partial Network Cluster is requested. If the bit is set to 0 there is no request for this PNC.

requirement SWS_Nm_00311 [SWS_Nm_00311] 📄 PDF

The PNC bit vector filter algorithm shall compare (bitwise AND) the received PNC bit vector with the PN filter mask to detect if a relevant PNC is requested or not. Each PNC bit of the PN filter mask shall have the following meaning: • 0: The PNC request is irrelevant for the ECU. The communication stack of the ECU is not kept awake if this bit is set in a received PNC bit vector . • 1: The PNC request is relevant for the ECU. The communication stack of the ECU is kept awake if this bit is set in a received PNC bit vector .

requirement SWS_Nm_00312 [SWS_Nm_00312] 📄 PDF

If Nm_PncBitVectorRxIndication is called, NmPnEiraCal- cEnabled or NmPnEraCalcEnabled is set to TRUE and at least one PNC bit is de- tected as relevant PNC request according to [SWS_Nm_00311] in the given PNC bit vector , the OUT parameter RelevantPncRequestDetectedPtr shall be set to TRUE. Otherwise the value of RelevantPncRequestDetectedPtr shall be set to FALSE.

requirement SWS_Nm_00313 [SWS_Nm_00313] 📄 PDF

If • NmPnEiraCalcEnabled is TRUE • and a PNC bit vector is received via Nm_PncBitVectorRxIndica- tion (<Nm-channel>, < PNC bit vector of external PNC requests>) or Nm_ForwardSynchronizedPncShutdown (<NM-channel>, < PNC bit vec- tor PNCs indicated for a synchronized shutdown>) • and PNCs are requested within this message (bits set to 1) • and the requested PNCs are set to 1 within the configured PN filter mask then Nm shall store the request information (value 1) for these PNCs as "PNC re- quested".

requirement SWS_Nm_00314 [SWS_Nm_00314] 📄 PDF

⌊ DRAFT g If • NmPnEiraCalcEnabled is TRUE • and a transmission of a PNC bit vector is indicated via Nm_PncBitVec- torTxIndication (<NM-channel>, <buffer to provide the unfiltered PNC bit vector of aggregated internal PNC requests >) • and PNCs are requested within the stored unfiltered PNC bit vector (bits set to 1) • and the requested PNCs of the stored unfiltered PNC bit vector for internal PNC requests are set to 1 within the configured PN filter mask then Nm shall store the request information (value 1) for these PNCs as "PNC re- quested".

requirement SWS_Nm_00317 [SWS_Nm_00317] 📄 PDF

If Nm_UpdateIRA (<NM-channel>, <PncBitVector of aggregated internal PNC requests>) is called, the Nm shall store the received unfilterred PncBitVec- tor per given NM-channel. Therefore, the Nm module shall copy the amount of bytes with respect of the configured length (see NmPncBitVectorLength ) of the given NM- Channel.

requirement SWS_Nm_00318 [SWS_Nm_00318] 📄 PDF

If NmPnEiraCalcEnabled is TRUE, then Nm shall provide a pos- sibility to monitor each relevant PNC in the context of Nm_Mainfunction . The moni- toring shall consider the PNC state, if the PNC is still externally or internally requested on at least one of the relevant NM-channels.

requirement SWS_Nm_00319 [SWS_Nm_00319] 📄 PDF

If NmPnEiraCalcEnabled is TRUE and every time a PNC is stored as "PNC requested" (see [SWS_Nm_00313]), then the monitoring for this PNC shall be restarted with respect to NmPnResetTime in the context of Nm_Mainfunc- tion .

requirement SWS_Nm_00320 [SWS_Nm_00320] 📄 PDF

If NmPnEiraCalcEnabled is TRUE and a PNC is not requested again within NmPnResetTime the corresponding stored value for this PNC shall be set to PNC released (value 0) in the context of Nm_Mainfunction .

requirement SWS_Nm_00321 [SWS_Nm_00321] 📄 PDF

If NmPnEiraCalcEnabled is TRUE and the stored value for a PNC is set to PNC requested or back to PNC released (see [SWS_Nm_00313] and [SWS_Nm_00320]), then Nm shall forward the changed state of EIRA to ComM by calling ComM_Nm_UpdateEIRA(<PncBitVector of EIRA>)) .

requirement SWS_Nm_00322 [SWS_Nm_00322] 📄 PDF

If NmPnEraCalcEnabled is TRUE, then Nm shall provide the pos- sibility to store relevant external PNCs request per channel. At initialization the values of all PNCs shall be set to 0 (PNC released).

requirement SWS_Nm_00323 [SWS_Nm_00323] 📄 PDF

If • NmPnEraCalcEnabled is TRUE • and a PNC bit vector is received via Nm_PncBitVectorRxIndication(<NM- channel>, <PncBitVector of external PNC requests>) • and PNCs are requested within this message (bits set to 1) • and the requested PNCs are set to 1 within the configured PN filter mask then Nm shall store the PNC request information (value 1) for these PNCs as "PNC requested" per given channel.

requirement SWS_Nm_00324 [SWS_Nm_00324] 📄 PDF

If NmPnEraCalcEnabled is TRUE, then Nm shall provide a pos- sibility to monitor each relevant PNC per channel in the context of Nm_Mainfunction . The monitoring shall consider the PNC state, if the PNC is still externally requested on the corresponding NM-channels.

requirement SWS_Nm_00325 [SWS_Nm_00325] 📄 PDF

If NmPnEraCalcEnabled is TRUE, then every time a PNC is stored as "PNC requested" (see [SWS_Nm_00323]), the monitoring for this PNC shall be restarted with respect to NmPnResetTime in the context of Nm_Mainfunction .

requirement SWS_Nm_00326 [SWS_Nm_00326] 📄 PDF

If NmPnEraCalcEnabled is TRUE and a PNC is not requested again within NmPnResetTime the corresponding stored value for this PN shall be set to PNC released (value 0).

requirement SWS_Nm_00327 [SWS_Nm_00327] 📄 PDF

If NmPnEraCalcEnabled is TRUE and the stored value for a PNC is set to PNC requested or back to PNC released (see [SWS_Nm_00323] and [SWS_Nm_00326]), then Nm shall forward the changed state of ERA of the affected NM-channel to ComM by calling ComM_Nm_UpdateERA(<ComMChannel>, <PncBitVector of ERA>) .

requirement SWS_Nm_00328 [SWS_Nm_00328] 📄 PDF

If NmPartialNetworkSupportEnabled is set to TRUE, then all PNC reset timers shall be stopped at initialization.

requirement SWS_Nm_00329 [SWS_Nm_00329] 📄 PDF

If NmPartialNetworkSupportEnabled is set to TRUE, then the evaluation of the PNC states in combination with PNC reset timers shall consider at least the following order: • Update PNC reset timers • Evaluate the PNC states • Perform actions based on the current state of PNC reset timer and PNC requests

requirement SWS_Nm_00330 [SWS_Nm_00330] 📄 PDF

For all configured NM-channel where NmPartialNetworkSup- portEnabled is set TRUE, Nm shall provide the possibility to store external and in- ternal requested PNCs combined over all NM-channels where NmPnEnabled is set to TRUE. At initialization the values of all PNCs within EIRA shall be set to 0 (PNC released).

requirement SWS_Nm_00331 [SWS_Nm_00331] 📄 PDF

If NmPnEiraCalcEnabled is TRUE and NmPnEraCalcEn- abled is TRUE , the PNC status information has to be stored separately for both, the EIRA and ERA information (compare [SWS_Nm_00302] and [SWS_Nm_00322]).

requirement SWS_Nm_00332 [SWS_Nm_00332] 📄 PDF

⌊ DRAFT g If NmPnEiraCalcEnabled is set to TRUE and Nm_- PncBitVectorTxIndication (NetworkHandle, PncBitVectorPtr) is called, then Nm shall copy the unfiltered PNC bit vector for internal PNC requests of the given NM- channel to the buffer indicated by PncBitVectorPtr.

requirement SWS_Nm_00483 [SWS_Nm_00483] 📄 PDF

If BusNmType is NM_BUSNM_LOCALNM and ComM requests Nm_- PassiveStartUp() or Nm_NetworkRequest() then Nm shall inform ComM about start of network by calling ComM_Nm_NetworkMode() . Rationale : Buses of type NM_LOCAL_NM which are coordinated do not have a network management message but are synchronized e.g. by a master - slave concept like LIN). These Bus-Types are always directly started on request by ComM but the shutdown will be done by coordinator algorithm.

requirement SWS_Nm_00484 [SWS_Nm_00484] 📄 PDF

The Nm module shall apply appropriate mechanisms to allow calls of its APIs from other partitions than its main function, e.g. by providing a Nm satellite.

requirement SWS_Nm_00485 [SWS_Nm_00485] 📄 PDF

Nm shall interact with <Bus>Nm (i.e. call <Bus>Nm APIs) only in the partition, where the respective <Bus>Nm module is assigned to.

requirement SWS_Nm_00486 [SWS_Nm_00486] 📄 PDF

The Nm kernel shall be assigned to the same partition as ComM kernel in order to keep the interaction between these two modules on an intra-partition basis.

requirement SWS_Nm_00487 [SWS_Nm_00487] 📄 PDF

When Nm_StateChangeNotification is called to report a change of the Nm state, Nm shall call BswM_Nm_StateChangeNotification() with the reported current state.

requirement SWS_Nm_00488 [SWS_Nm_00488] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_PassiveStartUp shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00489 [SWS_Nm_00489] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_NetworkRequest shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00490 [SWS_Nm_00490] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_NetworkRelease shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00491 [SWS_Nm_00491] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_DisableCommunication shall raise the error NM_E_INVALID_- CHANNEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00492 [SWS_Nm_00492] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_EnableCommunication shall raise the error NM_E_INVALID_- CHANNEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00493 [SWS_Nm_00493] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_SetUserData shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00494 [SWS_Nm_00494] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_GetUserData shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00495 [SWS_Nm_00495] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_GetPduData shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00496 [SWS_Nm_00496] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_RepeatMessageRequest shall raise the error NM_E_INVALID_- CHANNEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00497 [SWS_Nm_00497] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_GetNodeIdentifier shall raise the error NM_E_INVALID_CHAN- NEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00498 [SWS_Nm_00498] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_GetLocalNodeIdentifier shall raise the error NM_E_INVALID_- CHANNEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00499 [SWS_Nm_00499] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_CheckRemoteSleepIndication shall raise the error NM_E_IN- VALID_CHANNEL if the parameter nmNetworkHandle is not a configured network handle.

requirement SWS_Nm_00500 [SWS_Nm_00500] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_GetState shall raise the error NM_E_INVALID_CHANNEL if the pa- rameter nmNetworkHandle is not a configured network handle.

requirement SWS_Nm_00501 [SWS_Nm_00501] 📄 PDF

If NmDynamicPncToChannelMappingEnabled is set to TRUE and Nm_StateChangeNotification is called, then ComM_Nm_RepeatMessageLeftIndication() shall be called when nmPre- viousState is set to NM_STATE_REPEAT_MESSAGE and nmCurrentState is different from NM_STATE_REPEAT_MESSAGE .

requirement SWS_Nm_00502 [SWS_Nm_00502] 📄 PDF

Nm_PnLearningRequest shall only be available if NmDynam- icPncToChannelMappingSupport is set to TRUE .

requirement SWS_Nm_00503 [SWS_Nm_00503] 📄 PDF

If Nm_PnLearningRequest is called with a network handle for a bus system where NmDynamicPncToChannelMappingEnabled is set to FALSE Nm shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

requirement SWS_Nm_00504 [SWS_Nm_00504] 📄 PDF

If Nm_RepeatMessageIndication is called with pn- LearningBitSet set to TRUE and NmDynamicPncToChannelMappingEn- abled is set to TRUE for the provided nmNetworkHandle Nm shall call ComM_Nm_PncLearningBitIndication with the corresponding network handle.

requirement SWS_Nm_00505 [SWS_Nm_00505] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_PnLearningRequest shall raise the error NM_E_INVALID_CHAN- NEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00506 [SWS_Nm_00506] 📄 PDF

⌊ DRAFT g If function Nm_RequestSynchronizedPncShutdown is called, NmSynchronizedPncShutdownEnabled is set to TRUE and NmStan- dardBusType is set to a type other than NM_BUSNM_LOCALNM , the function shall immediately forward the call to the affected <Bus>Nm by calling <Bus> Nm_RequestSynchronizedPncShutdown . Otherwise the function shall return with E_NOT_OK .

requirement SWS_Nm_00507 [SWS_Nm_00507] 📄 PDF

⌊ OBSOLETE g The indication of a received PN shutdown message via callback function Nm_ForwardSynchronizedPncShutdown shall be forwarded to ComM with the corresponding ComMChannel by calling ComM_Nm_ForwardSynchronizedPncShutdown(<ComMChannel>) .

requirement SWS_Nm_00508 [SWS_Nm_00508] 📄 PDF

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_RequestSynchronizedPncShutdown shall raise the error NM_E_- INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

requirement SWS_Nm_00509 [SWS_Nm_00509] 📄 PDF

[SWS_Nm_00509] occur, Nm_StateChangeNotification shall call Com_SendSignal(uint8, Com_SignalIdType, const void*) for the signal referenced by NmStateRe- portSignalRef with the value according to [SWS_Nm_00509].⌋ Note: The transmitted signal has to be at least a 6 bit signal in Com that should be part of the NM message.

requirement SWS_Nm_00521 [SWS_Nm_00521] 📄 PDF

If function Nm_RequestSynchronizedPncShutdown is called, NmSynchronizedPncShutdownEnabled is set to TRUE and NmStandardBusType of the given NM-channel is set to a type other than NM_BUSNM_LOCALNM , the Nm module shall store the given PNC (PncId) per given NM-channel ( NetworkHandle ) as a pending request for a synchronized PNC shutdown.

requirement SWS_Nm_00523 [SWS_Nm_00523] 📄 PDF

If NmSynchronizedPncShutdownEnabled is set to TRUE, re- quests for synchronized PNC shutdown are pending and PNC shutdown handling has been deactived, then Nm shall activate the PNC shutdown handling by calling <Bus> Nm_ActivateTxPnShutdownMsg .

requirement SWS_Nm_00524 [SWS_Nm_00524] 📄 PDF

If NmSynchronizedPncShutdownEnabled is set to TRUE, no requests for synchronized PNC shutdown are pending, PNC shutdown handling has been activated, then Nm shall deactivate the PNC shutdown handling by calling <Bus> Nm_DeactivateTxPnShutdownMsg .

requirement SWS_Nm_00525 [SWS_Nm_00525] 📄 PDF

If NmPnShutdownMessageRetransmissionDuration is configured and Nm_RequestSynchronizedPncShutdown is called (refer to [SWS_Nm_00523]), then the corresponding retransmission timer for PN shutdown messages shall be started with NmPnShutdownMessageRetransmissionDura- tion on all affected NM-channels.

requirement SWS_Nm_00527 [SWS_Nm_00527] 📄 PDF

If NmSynchronizedPncShutdownEnabled is set to TRUE, PNC shutdown handling has been activated (refer to [SWS_Nm_00523]) and Nm_- PncBitVectorTxConfirmation is called with E_OK, then the Nm module shall consider those PNC IDs, stored as pending request for a synchronized PNC shut- down of the given NM-channel, as completed which were indicated by the given PNC bit vector (PNC bit set '1') and remove them from storage. Additionally, if NmPn- ShutdownMessageRetransmissionDuration is configured, then the Nm module shall cancel the retransmission timer for PN shutdown messages of the affected NM- channel.

requirement SWS_Nm_00529 [SWS_Nm_00529] 📄 PDF

If NmSynchronizedPncShutdownEnabled is set to TRUE and the Nm module has stored PNC IDs as pending request for a synchronized PNC shut- down, then Nm shall remove those PNC IDs from storage which are either externally or internally requested again: • Nm shall check on reception of an PNC bit vector via call of Nm_- PncBitVectorRxIndication , if externally requested PNCs are received. • Nm shall check on update of an PNC bit vector via call of Nm_UpdateIRA , if internal PNC requests are available .

requirement SWS_Nm_00530 [SWS_Nm_00530] 📄 PDF

If NmSynchronizedPncShutdownEnabled is set to TRUE, NmPnShutdownMessageRetransmissionDuration is not configured, the corre- sponding <Bus>Nm module of this NM-channel has indicated transmission request via call of Nm_PncBitVectorTxIndication and Nm_PncBitVectorTxConfir- mation is called with result E_NOT_OK (transmission of the given PNC bit vector failed), then the Nm shall remove the PNC IDs stored as pending request for a syn- chronized PNC shutdown of the corresponding NM-channel and report the runtime error NM_E_TRANSMISSION_OF_PN_SHUTDOWN_MESSAGE_FAILED to DET .

requirement SWS_Nm_00532 [SWS_Nm_00532] 📄 PDF

If NmSynchronizedPncShutdownEnabled is set to TRUE and a retransmission timer for a PN shutdown message (see NmP- nShutdownMessageRetransmissionDuration ) expires, then Nm shall remove the pending request for a synchronized PNC shutdown of the cor- responding NM-channel from the storage and report the runtime error NM_E_TRANSMISSION_OF_PN_SHUTDOWN_MESSAGE_FAILED to DET .

requirement SWS_Nm_00533 [SWS_Nm_00533] 📄 PDF

If NmPartialNetworkSupportEnabled is set to TRUE, then PNC shutdown handling shall be considered as deactivated at initialization.

requirement SWS_Nm_00534 [SWS_Nm_00534] 📄 PDF

If • NmPnEiraCalcEnabled is set to TRUE • and a transmission of a PNC bit vector is indicated via Nm_PncBitVec- torTxIndication (<NM-channel>, <buffer to provide the unfiltered PNC bit vector of aggregated internal PNC requests >) • and no requests for a synchronized PNC shutdown are pending on the given NM-channel • and PNCs are requested within the stored unfiltered PNC bit vector (bits set to 1) • and the requested PNCs of the stored unfiltered PNC bit vector for internal PNC requests are set to 1 within the configured PN filter mask then Nm shall store the request information (value 1) for these PNCs as "PNC re- quested".

requirement SWS_Nm_00535 [SWS_Nm_00535] 📄 PDF

If NmPnEiraCalcEnabled is TRUE, Nm_PncBitVec- torTxIndication (<NM-channel>, PncBitVectorPtr <buffer to provide the unfiltered PNC bit vector>) is called and no requests for synchronized PNC shutdown are pending on the given NM-channel, then Nm shall copy the unfiltered PNC bit vector for internal PNC requests of the given NM-channel to the buffer indicated by PncBitVectorPtr .

requirement SWS_Nm_00536 [SWS_Nm_00536] 📄 PDF

If • NmPnEiraCalcEnabled is set to TRUE • and requests for a synchronized PNC shutdown are pending on the given NM- channel • and a transmission of a PNC bit vector is indicated via Nm_PncBitVec- torTxIndication (<NM-channel>, <buffer to provide the PNC bit vector of the aggregated synchronized PNC requests >), • and PNCs are requested for a synchronized PNC shutdown within the PNC bit vector (bits set to 1) • and the aggregated synchronized PNC requests of the PNC bit vector are set to 1 within the configured PN filter mask, then Nm shall store the request information (value 1) for these PNCs as "PNC re- quested".

requirement SWS_Nm_00537 [SWS_Nm_00537] 📄 PDF

If NmPnEiraCalcEnabled is set to TRUE, Nm_PncBitVec- torTxIndication (NetworkHandle <NM-channel>, PncBitVectorPtr <buffer to pro- vide the aggregated synchronized PNC requests as bit vector>) is called and requests for synchronized PNC shutdown are pending on the given NM-channel, then Nm shall set the buffer indicated by PncBitVectorPtr as follows : • set all according bits to 1 that relate to a PNC requested for synchronized PNC shutdown of the given NM-channel • set all other bits to 0

requirement SWS_Nm_00999 [SWS_Nm_00999] 📄 PDF

Not applicable requirements These requirements are not ap- plicable to this specification.

requirement SWS_Nm_91011 [SWS_Nm_91011] 📄 PDF

Type of error Related error code Error value Retransmission timer for a PN shutdown message has expired, because a PN shutdown message could not be transmitted on the network within the configured duration of re-transmission. NM_E_TRANSMISSION_OF_PN_SHUTDOWN_ MESSAGE_FAILED 0x10

requirement SWS_Nm_CONSTR_00001 [SWS_Nm_CONSTR_00001] 📄 PDF

The length of all configured NmPnFilterMaskByte s shall have the same length (in bytes) as the NmPncBitVectorLength of the cor- responding NM-channel. A configuration tool shall reject a configuration as invalid (error), if the length of the configured NmPnFilterMaskByte s differ from the config- ured NmPncBitVectorLength of the corresponding NM-channel.

requirement SWS_Nm_NA_00999 [SWS_Nm_NA_00999] 📄 PDF

Not applicable requirements These requirements are not applicable to this specification.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Nm
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Nm@rel:R20-11#2ba6ebf4
Content hash
2ba6ebf4
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_NetworkManagementInterface.pdf#nameddest=SWS_Nm_00030

Themenkarte

Initialisierung und Status

2

Callouts und erwartete Schnittstellen

1

Anforderungen

160
SWS_Nm_00001SWS_Nm_00002SWS_Nm_00003SWS_Nm_00006SWS_Nm_00012SWS_Nm_00020SWS_Nm_00028SWS_Nm_00051SWS_Nm_00055SWS_Nm_00091SWS_Nm_00117SWS_Nm_00119SWS_Nm_00121SWS_Nm_00124SWS_Nm_00127SWS_Nm_00128SWS_Nm_00129SWS_Nm_00130SWS_Nm_00131SWS_Nm_00132SWS_Nm_00133SWS_Nm_00134SWS_Nm_00135SWS_Nm_00136SWS_Nm_00137SWS_Nm_00138SWS_Nm_00139SWS_Nm_00140SWS_Nm_00141SWS_Nm_00143SWS_Nm_00145SWS_Nm_00147SWS_Nm_00149SWS_Nm_00150SWS_Nm_00151SWS_Nm_00155SWS_Nm_00158SWS_Nm_00161SWS_Nm_00163SWS_Nm_00164SWS_Nm_00165SWS_Nm_00166SWS_Nm_00167SWS_Nm_00168SWS_Nm_00169SWS_Nm_00171SWS_Nm_00172SWS_Nm_00173SWS_Nm_00174SWS_Nm_00175SWS_Nm_00176SWS_Nm_00177SWS_Nm_00181SWS_Nm_00182SWS_Nm_00183SWS_Nm_00185SWS_Nm_00228SWS_Nm_00232SWS_Nm_00233SWS_Nm_00235SWS_Nm_00236SWS_Nm_00241SWS_Nm_00243SWS_Nm_00245SWS_Nm_00247SWS_Nm_00249SWS_Nm_00251SWS_Nm_00252SWS_Nm_00255SWS_Nm_00256SWS_Nm_00257SWS_Nm_00259SWS_Nm_00261SWS_Nm_00262SWS_Nm_00267SWS_Nm_00271SWS_Nm_00273SWS_Nm_00277SWS_Nm_00278SWS_Nm_00279SWS_Nm_00280SWS_Nm_00281SWS_Nm_00283SWS_Nm_00284SWS_Nm_00285SWS_Nm_00286SWS_Nm_00287SWS_Nm_00288SWS_Nm_00289SWS_Nm_00290SWS_Nm_00292SWS_Nm_00293SWS_Nm_00302SWS_Nm_00305SWS_Nm_00308SWS_Nm_00310SWS_Nm_00311SWS_Nm_00312SWS_Nm_00313SWS_Nm_00314SWS_Nm_00317SWS_Nm_00318SWS_Nm_00319SWS_Nm_00320SWS_Nm_00321SWS_Nm_00322SWS_Nm_00323SWS_Nm_00324SWS_Nm_00325SWS_Nm_00326SWS_Nm_00327SWS_Nm_00328SWS_Nm_00329SWS_Nm_00330SWS_Nm_00331SWS_Nm_00332SWS_Nm_00483SWS_Nm_00484SWS_Nm_00485SWS_Nm_00486SWS_Nm_00487SWS_Nm_00488SWS_Nm_00489SWS_Nm_00490SWS_Nm_00491SWS_Nm_00492SWS_Nm_00493SWS_Nm_00494SWS_Nm_00495SWS_Nm_00496SWS_Nm_00497SWS_Nm_00498SWS_Nm_00499SWS_Nm_00500SWS_Nm_00501SWS_Nm_00502SWS_Nm_00503SWS_Nm_00504SWS_Nm_00505SWS_Nm_00506SWS_Nm_00507SWS_Nm_00508SWS_Nm_00509SWS_Nm_00521SWS_Nm_00523SWS_Nm_00524SWS_Nm_00525SWS_Nm_00527SWS_Nm_00529SWS_Nm_00530SWS_Nm_00532SWS_Nm_00533SWS_Nm_00534SWS_Nm_00535SWS_Nm_00536SWS_Nm_00537SWS_Nm_00999SWS_Nm_91011SWS_Nm_CONSTR_00001SWS_Nm_NA_00999

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Initialisierung und Status

This service returns the version information of this module.

void Nm_GetVersionInfo(Std_VersionInfoType* nmVerInfoPtr);
Nm_Init function

Initializes the NM Interface.

void Nm_Init(const Nm_ConfigType* ConfigPtr);

Dienste

Notification that the network management has entered Bus-Sleep Mode.

void Nm_BusSleepMode(NetworkHandleType nmNetworkHandle);

This function is called by a <Bus>Nm to indicate reception of a CWU request.

void Nm_CarWakeUpIndication(NetworkHandleType nmChannelHandle);

Check if remote sleep indication takes place or not. For that purpose <Bus>Nm_CheckRemote SleepIndication shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_CheckRemoteSleepIndication function is called if channel is configured as CAN).

Std_ReturnType Nm_CheckRemoteSleepIndication(NetworkHandleType nmNetworkHandle, boolean* nmRemoteSleepIndPtr);

Cancels an indication, when the NM Coordinator Sleep Ready bit in the Control Bit Vector is set back to 0.

void Nm_CoordReadyToSleepCancellation(NetworkHandleType nmChannelHandle);

Sets an indication, when the NM Coordinator Sleep Ready bit in the Control Bit Vector is set

void Nm_CoordReadyToSleepIndication(NetworkHandleType nmChannelHandle);

Disables the NM PDU transmission ability. For that purpose <Bus>Nm_DisableCommunication shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM (e.g. CanNm_Disable Communication function is called if channel is configured as CAN).

Std_ReturnType Nm_DisableCommunication(NetworkHandleType NetworkHandle);

Enables the NM PDU transmission ability. For that purpose <Bus>Nm_EnableCommunication shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_Enable Communication function is called if channel is configured as CAN).

Std_ReturnType Nm_EnableCommunication(NetworkHandleType NetworkHandle);

Notification that the network management has received a PN shutdown message on a particular NM-channel. This is used to grant a nearly synchronized PNC shutdown across the entire PN topology. Tags: atp.Status=draft

void Nm_ForwardSynchronizedPncShutdown(void);

Notification that the network management has received a PN shutdown message on a particular NM-channel. This is used to grant a nearly synchronized PNC shutdown across the entire PN topology.

void Nm_ForwardSynchronizedPncShutdown(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr);

Get node identifier configured for the local node. For that purpose <Bus>Nm_GetLocalNode Identifier shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. Can Nm_GetLocalNodeIdentifier function is called if channel is configured as CAN).

Std_ReturnType Nm_GetLocalNodeIdentifier(NetworkHandleType NetworkHandle, uint8* nmNodeIdPtr);

Get node identifier out of the last successfully received NM-message. The function <Bus>Nm_ GetNodeIdentifier shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetNodeIdentifier function is called if channel is configured as CAN).

Std_ReturnType Nm_GetNodeIdentifier(NetworkHandleType NetworkHandle, uint8* nmNodeIdPtr);
Nm_GetPduData function

Get the whole PDU data out of the most recently received NM message. For that purpose <Bus Nm>_GetPduData shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetPduData function is called if channel is configured as CAN).

Std_ReturnType Nm_GetPduData(NetworkHandleType NetworkHandle, uint8* nmPduData);
Nm_GetState function

Returns the state of the network management. The function <Bus>Nm_GetState shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetState function is called if channel is configured as CAN).

Std_ReturnType Nm_GetState(NetworkHandleType nmNetworkHandle, Nm_StateType* nmStatePtr, Nm_ModeType* nmModePtr);

Get user data out of the last successfully received NM message. For that purpose <Bus>Nm_ GetUserData shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_GetUserData function is called if channel is configured as CAN).

Std_ReturnType Nm_GetUserData(NetworkHandleType NetworkHandle, uint8* nmUserDataPtr);

Notification that the network management has entered Network Mode.

void Nm_NetworkMode(NetworkHandleType nmNetworkHandle);

This function calls the <Bus>Nm_NetworkRelease bus specific function in case NmBusType is not set to NM_BUSNM_LOCALNM (e.g. CanNm_NetworkRelease function is called if channel is configured as CAN).

Std_ReturnType Nm_NetworkRelease(NetworkHandleType NetworkHandle);

This function calls the <Bus>Nm_NetworkRequest (e.g. CanNm_NetworkRequest function is called if channel is configured as CAN) function in case NmBusType is not set to NM_BUSNM_ LOCALNM.

Std_ReturnType Nm_NetworkRequest(NetworkHandleType NetworkHandle);

Notification that a NM-message has been received in the Bus-Sleep Mode, what indicates that some nodes in the network have already entered the Network Mode.

void Nm_NetworkStartIndication(NetworkHandleType nmNetworkHandle);

This function calls the <Bus>Nm_PassiveStartUp function in case NmBusType is not set to NM_BUSNM_LOCALNM (e.g. CanNm_PassiveStartUp function is called for NM_BUSNM_ CANNM).

Std_ReturnType Nm_PassiveStartUp(NetworkHandleType NetworkHandle);

Function called by <Bus>Nms to request the aggregated internal PNC requests for transmission within the Nm message.

void Nm_PncBitVectorTxIndication(NetworkHandleType NetworkHandle, uint8* PncBitVectorPtr);

Set Repeat Message Request Bit and Partial Network Learning Bit for NM messages transmitted next on the bus. For that purpose <Bus>Nm_PnLearningRequest shall be called (e.g. CanNm_PnLearningRequest function if channel is configured as CAN). This will force all nodes to enter the PNC Learning Phase and re-enter Repeat Message Stat. This is needed for the optional Dynamic PNC-to-channel-mapping feature.

Std_ReturnType Nm_PnLearningRequest(NetworkHandleType NetworkHandle);

Notification that the network management has entered Prepare Bus-Sleep Mode.

void Nm_PrepareBusSleepMode(NetworkHandleType nmNetworkHandle);

Notification that the network management has detected that not all other nodes on the network are longer ready to enter Bus-Sleep Mode.

void Nm_RemoteSleepCancellation(NetworkHandleType nmNetworkHandle);

Notification that the network management has detected that all other nodes on the network are ready to enter Bus-Sleep Mode.

void Nm_RemoteSleepIndication(NetworkHandleType nmNetworkHandle);

Service to indicate that an NM message with set Repeat Message Re- quest Bit has been received. This is needed for node detection and the Dynamic PNC-to-channel-mapping feature.

void Nm_RepeatMessageIndication(NetworkHandleType nmNetworkHandle, boolean pnLearningBitSet);

Set Repeat Message Request Bit for NM messages transmitted next on the bus. For that purpose <Bus>Nm_RepeatMessageRequest shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. CanNm_RepeatMessageRequest function is called if channel is configured as CAN). This will force all nodes on the bus to transmit NM messages so that they can be identified.

Std_ReturnType Nm_RepeatMessageRequest(NetworkHandleType NetworkHandle);

This function store the request for a synchronized PNC shutdown of a particular PNC given by PncId per given NM-Channel. The handling of the synchronized PNC shutdown process is mainly done in the context of the Nm_Mainfunction. The function call is only valid if NmStandardBusType is not set to NM_BUSNM_LOCALNM as a <Bus>Nm like CanNm is needed to transmit the PNC shutdown requests.

Std_ReturnType Nm_RequestSynchronizedPncShutdown(NetworkHandleType NetworkHandle, PNCHandleType PncId);

Set user data for NM messages transmitted next on the bus. For that purpose <Bus>Nm_Set UserData shall be called in case NmBusType is not set to NM_BUSNM_LOCALNM. (e.g. Can Nm_SetUserData function is called if channel is configured as CAN).

Std_ReturnType Nm_SetUserData(NetworkHandleType NetworkHandle, const uint8* nmUserDataPtr);

Notification that the state of the lower layer <Bus>Nm has changed.

void Nm_StateChangeNotification(NetworkHandleType nmNetworkHandle, Nm_StateType nmPreviousState, Nm_StateType nmCurrentState);

Notification to the NM Coordinator functionality that this is a suitable point in time to initiate the coordinated shutdown on.

void Nm_SynchronizationPoint(NetworkHandleType nmNetworkHandle);

Notification that the network management has entered Synchronize Mode.

void Nm_SynchronizeMode(NetworkHandleType nmNetworkHandle);

Service to indicate that an attempt to send an NM message failed.

void Nm_TxTimeoutException(NetworkHandleType nmNetworkHandle);
Nm_UpdateIRA function

Indication by ComM of internal PNC requests. This is used to aggregate the internal PNC requests.

void Nm_UpdateIRA(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr);

Callbacks

Notification that a NM message has been received.

void Nm_PduRxIndication(NetworkHandleType nmNetworkHandle);

Indication that a bus specific network management has received a NM message on a particular NM-channel that contain a PNC bit vector. This is used to aggregate the external PNC requests. The function evaluate if a relevant PNC request (PNC bit set to '1') is available in the given PNC bit vector. If a relevant PNC request is available (PNC bit passes the PNC bit vector filter), then the RelevantPncRequestDetectedPtr refers to a boolean with value set to TRUE. Otherwise refer to booelan with value set to FALSE. RelevantPncRequestDetectedPtr is evaluated by the callee <Bus>Nm module to qualify the further processing of the received NM-PDU.

void Nm_PncBitVectorRxIndication(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr, boolean* RelevantPncRequestDetectedPtr);

Function called by <Bus>Nms to confirm the state of the transmission for the given PNC bit vector on the given NM-Channel.

void Nm_PncBitVectorTxConfirmation(NetworkHandleType NetworkHandle, const uint8* PncBitVectorPtr, Std_ReturnType result);

Callouts und erwartete Schnittstellen

Callout function to be called by Nm_CarWakeUpIndication()

void <NmCarWakeUpCallout>(NetworkHandleType nmNetworkHandle);

Zyklisch

This function implements the processes of the NM Interface, which need a fix cyclic scheduling.

void Nm_MainFunction(void);

Typen

BusNm Type

Configuration data structure of the Nm module.

Operational modes of the network management.

States of the network management state machine.

Anforderungen

SWS_Nm_00001 requirement

The coordination algorithm shall be able to handle a topology where several coordinated busses are connected to one NM Coordinator .

SWS_Nm_00002 requirement

As long as the node implementing the NM Coordinator is not ready to go to sleep on at least one of the busses in a coordination cluster (i.e. that it has actively requested the network), the NM Coordinator shall ensure that the network is requested on all currently active busses in that coordination cluster.

SWS_Nm_00003 requirement

As long as at least one bus in the coordination cluster is not ready to sleep (i.e. because another node than the NM Coordinator is requesting that bus), the NM Coordinator shall still ensure that the network is requested on all currently active busses in that coordination cluster even if the local ECU itself is ready to go to sleep on all busses of that coordination cluster.

SWS_Nm_00006 requirement

The Nm shall convert generic function calls from the ComM to bus specific functions of the bus specific NM layer.

SWS_Nm_00012 requirement

The Nm shall convert callback functions called by the bus specific NM layers to generic callbacks to the ComM.

SWS_Nm_00020 requirement

A scheduled main function shall only contain logic related to the NM Coordinator functionality .

SWS_Nm_00028 requirement

All callbacks of the Nm shall assume that they can run either in task or in interrupt context.

SWS_Nm_00051 requirement

The NM Coordinator shall be able to coordinate busses run- ning the official AUTOSAR bus specific NMs as well as all other generic bus NM s im- plementing the required functionality, callbacks and interfaces.

SWS_Nm_00055 requirement

The NM Interface configuration shall provide the parameter Nm- CoordinatorSupportEnabled to define if the support of the NM Coordinator func- tionality is present or not.

SWS_Nm_00091 requirement

The Base functionality of Nm may be implemented completely or partly using macros.

SWS_Nm_00117 requirement

Module Header File Imported Type Com Com.h Com_SignalIdType ComStack_Types.h NetworkHandleType ComStack_Types ComStack_Types.h PNCHandleType Std_Types.h Std_ReturnType Std Std_Types.h Std_VersionInfoType

SWS_Nm_00119 requirement

<Bus>Nm_GetState – Returns the state and the mode of the network management. <Bus>Nm_NetworkRelease – Release the network, since ECU doesn't have to communicate on the bus. <Bus>Nm_NetworkRequest – Request the network, since ECU needs to communicate on the bus. <Bus>Nm_PassiveStartUp – Passive startup of the NM. It triggers the transition from Bus-Sleep Mode to the Network Mode without requesting the network. ComM_Nm_BusSleepMode ComM_Nm.h Notification that the network management has entered Bus-Sleep Mode. This callback function should perform a transition of the hardware and transceiver to bus-sleep mode. ComM_Nm_NetworkMode ComM_Nm.h Notification that the network management has entered Network Mode. ComM_Nm_NetworkStartIndication ComM_Nm.h Indication that a NM-message has been received in the Bus Sleep Mode, what indicates that some nodes in the network have already entered the Network Mode. API Function Header File Description ComM_Nm_PrepareBusSleepMode ComM_Nm.h Notification that the network management has entered Prepare Bus-Sleep Mode. Reentrancy: Reentrant (but not for the same NM-Channel) ComM_Nm_RestartIndication ComM_Nm.h If NmIf has started to shut down the coordinated busses, AND not all coordinated busses have indicated bus sleep state, AND on at least on one of the coordinated busses NM is restarted, THEN the NM Interface shall call the callback function ComM_ Nm_RestartIndication with the nmNetworkHandle of the channels which have already indicated bus sleep state.

SWS_Nm_00121 requirement

In case the main function is called before the Nm has been ini- tialized, the main function shall immediately return without yielding an error.

SWS_Nm_00124 requirement

The following header files shall be included by the Nm Interface module: • Std_Types.h (for AUTOSAR standard types ) Note: Platform_Types.h (for platform specific types) is indirectly included via AUTOSAR standard types. • ComM_Nm.h (for Communication Manager callback functions) • BswM_Nm.h (If the BswM is used for CarWakeup-functionalitiy)

SWS_Nm_00127 requirement

Caveats of Nm_Init : This service function has to be called af- ter the initialization of the respective bus interface.

SWS_Nm_00128 requirement

Caveats of Nm_PassiveStartUp : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00129 requirement

Caveats of Nm_NetworkRequest : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00130 requirement

If Nm_NetworkRequest is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

SWS_Nm_00131 requirement

Caveats of Nm_NetworkRelease : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00132 requirement

If Nm_NetworkRelease is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

SWS_Nm_00133 requirement

Caveats of Nm_DisableCommunication : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00134 requirement

Configuration of Nm_DisableCommunication : This function is only available if NmComControlEnabled is set to TRUE .

SWS_Nm_00135 requirement

Caveats of Nm_EnableCommunication : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00136 requirement

Configuration of Nm_EnableCommunication : This function is only available if NmComControlEnabled is set to TRUE .

SWS_Nm_00137 requirement

Caveats of Nm_SetUserData : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00138 requirement

Configuration of Nm_SetUserData : This function is only avail- able if NmUserDataEnabled is set to TRUE .

SWS_Nm_00139 requirement

Caveats of Nm_GetUserData : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00140 requirement

Configuration of Nm_GetUserData : This function is only avail- able if NmUserDataEnabled is set to TRUE .

SWS_Nm_00141 requirement

Caveats of Nm_GetPduData : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00143 requirement

Caveats of Nm_RepeatMessageRequest : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00145 requirement

Caveats of Nm_GetNodeIdentifier : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00147 requirement

Caveats of Nm_GetLocalNodeIdentifier : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00149 requirement

Caveats of Nm_CheckRemoteSleepIndication : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00150 requirement

Configuration of Nm_CheckRemoteSleepIndication : This function is only available if NmRemoteSleepIndEnabled is set to TRUE .

SWS_Nm_00151 requirement

Caveats of Nm_GetState : The <BusNm> and the Nm itself are initialized correctly.

SWS_Nm_00155 requirement

The indication through callback function Nm_Network- StartIndication : shall be forwarded to ComM by calling the ComM_Nm_- NetworkStartIndication .

SWS_Nm_00158 requirement

The indication through callback function Nm_NetworkMode : shall be forwarded to ComM by calling the ComM_Nm_NetworkMode .

SWS_Nm_00161 requirement

The indication through callback function Nm_PrepareBus- SleepMode : shall be forwarded to ComM by calling ComM_Nm_PrepareBusSleep- Mode .

SWS_Nm_00163 requirement

The indication through callback function Nm_BusSleepMode : shall be forwarded to ComM by calling the ComM_Nm_BusSleepMode .

SWS_Nm_00164 requirement

Configuration of Nm_PduRxIndication : This function is only available if NmPduRxIndicationEnabled is set to TRUE.

SWS_Nm_00165 requirement

Configuration of Nm_StateChangeNotification : This func- tion is only available if NmStateChangeIndEnabled is set to TRUE.

SWS_Nm_00166 requirement

<Bus>Nm_ActivateTxPnShutdownMsg – NM indicate to activate the transmission of PN shutdown messages on the given NM-Channel. This results in transmission of a NM-PDU with PNSR bit set to 1 (PN shutdown message). <Bus>Nm_CheckRemoteSleep Indication – Check if remote sleep indication takes place or not. <Bus>Nm_DeactivateTxPnShutdown Msg – NM indicate to deactive the transmission of PN shutdown messages on the given NM-Channel. This result in transmission of a usual NM-PDUs with PNSR bit set to 0. <Bus>Nm_DisableCommunication – Disable the NM PDU transmission ability. <Bus>Nm_EnableCommunication – Enable the NM PDU transmission ability. <Bus>Nm_GetLocalNodeIdentifier – Get node identifier configured for the local node. <Bus>Nm_GetNodeIdentifier – Get node identifier out of the last successfully received NM-message. <Bus>Nm_GetPduData – Pointer where NM PDU shall be copied to. <Bus>Nm_GetUserData – Get user data out of the last successfully received NM message. <Bus>Nm_PnLearningRequest – – <Bus>Nm_RepeatMessageRequest – Request a Repeat Message Request to be transmitted next on the bus. <Bus>Nm_RequestBus Synchronization – Request bus synchronization. <Bus>Nm_RequestSynchronizedPnc Shutdown – – <Bus>Nm_SetSleepReadyBit – Set the NM Coordinator Sleep Ready bit in the Control Bit Vector <Bus>Nm_SetUserData – Set user data for NM messages transmitted next on the bus. API Function Header File Description BswM_Nm_CarWakeUpIndication BswM_Nm.h Function called by Nm to indicate a CarWakeup. Com_SendSignal Com.h The service Com_SendSignal updates the signal object identified by SignalId with the signal referenced by the SignalDataPtr parameter. ComM_Nm_ForwardSynchronizedPnc Shutdown ComM_Nm.h If an ECU in role of an intermediate PNC coordinator receives a PN shutdown message via a <Bus>Nm, then ComM is immediately indicated via ComM_ Nm_ForwardSynchronizedPncShutdown to forward the request for a synchronized PNC shutdown of the affected PNCs given by PncBitVectorPtr. Therefore, ComM will immediately release the affected PNC state machines and forward the PNC bit vector to the affected ComM Channels and the corresponding NM channels, respectively. Note: This supports a nearly synchronized PNC shutdown across the PN topology from the top-level PNC coordinator down to the subordinated PNC node. ComM_Nm_PncLearningBitIndication ComM_Nm.h Service to indicate that an NM message with set PNC Learning Bit has been received. ComM_Nm_RepeatMessageLeft Indication ComM_Nm.h Notification that the state of all <Bus>Nm has left RepeatMessage. This interface is used to indicate by the optional Dynamic PNC-to-channel-mapping feature to indicate that learning phase ends. ComM_Nm_UpdateEIRA ComM_Nm.h Function to indicate the current aggregated external / internal PNC request called by Nm. ComM_Nm_UpdateERA ComM_Nm.h Function to indicate the current external PNC request per channel called by Nm. Det_ReportError Det.h Service to report development errors.

SWS_Nm_00167 requirement

It shall be possible to configure multiple NM coordination clusters that shall be coordinated independently.

SWS_Nm_00168 requirement

Each bus shall belong to zero or one NM coordination cluster.

SWS_Nm_00169 requirement

Shutdown shall only be coordinated on the presently awake net- works of a coordination cluster. Networks that are already in ”bus-sleep mode“ shall still be monitored but not coordinated.

SWS_Nm_00171 requirement

When all networks of a coordination cluster are either ready to go to sleep or already in ”bus-sleep mode“ the NM Coordinator shall start the coordinated shutdown on all awake networks. The NM Coordinator shall eval- uate continuously if the coordinated shutdown can be started.

SWS_Nm_00172 requirement

If the configuration parameter NmSynchronizingNetwork is TRUE for any of the busses in a coordination cluster, the coordination shutdown shall be delayed until a network that is configured as synchronizing network for this coordination cluster invoked Nm_SynchronizationPoint .

SWS_Nm_00173 requirement

If not all conditions to start the coordinated shutdown have been met, or if the coordinated shutdown has already been started (but not aborted), calls to Nm_SynchronizationPoint shall be ignored.

SWS_Nm_00174 requirement

If the configuration parameter NmSynchronizingNetwork is FALSE for all of the presently awake busses in a coordination cluster, the timers shall be started after all shutdown conditions have been met, without waiting for a call to Nm_SynchronizationPoint (). (see also [SWS_Nm_00172]).

SWS_Nm_00175 requirement

When the coordinated shutdown is started, a shutdown de- lay timer shall be activated for each currently awake channel in the coordination clus- ter. Each timer shall be set to NmGlobalCoordinatorTime . In case NmBusType is not set to NM_BUSNM_LOCALNM additionally the shutdown time of the specific channel TSHUTDOWN_CHANNEL shall be subtracted.

SWS_Nm_00176 requirement

When a shutdown timer expires for a network, Nm shall in case BusNmType is not set to NM_BUSNM_LOCALNM release the network by calling the <Bus>Nm_RequestBusSynchronization followed by <Bus>Nm_NetworkRe- lease . In case BusNmType is set to NM_BUSNM_LOCALNM Nm shall inform ComM about shutdown by calling ComM_Nm_BusSleepMode() .

SWS_Nm_00177 requirement

Nm shall keep track of all networks that have been released but have not yet reported ”bus-sleep mode“. If the shutdown is aborted, these networks shall still be considered active networks.

SWS_Nm_00181 requirement

The coordinated shutdown shall be aborted if any network in that NM Coordination Cluster , • indicates Nm_RemoteSleepCancellation or • indicates Nm_NetworkMode or • indicates Nm_CoordReadyToSleepCancellation • or the ComM request one of the networks with Nm_NetworkRequest or Nm_- PassiveStartUp .

SWS_Nm_00182 requirement

If the coordinated shutdown is aborted, NM Coordinator shall call ComM_Nm_RestartIndication for all networks that already indicated ”bus sleep“.

SWS_Nm_00183 requirement

If the coordinated shutdown is aborted, NM Coordinator shall in case BusNmType is not set NM_BUSNM_LOCALNM request the network from the <Bus>Nm 's for the networks that have not indicated ”bus sleep“. In case BusNmType is set to NM_BUSNM_LOCALNM Nm shall inform ComM about network startup by calling ComM_Nm_NetworkMode() .

SWS_Nm_00185 requirement

If the coordination algorithm has been aborted, all con- ditions that guard the initiation of the coordinated shutdown shall be evaluated again.

SWS_Nm_00228 requirement

If a bus of a coordination cluster has the parameter NmChannel- SleepMaster set to TRUE , the NM Coordinator shall consider that bus ready to sleep at all times and shall not await an invocation of Nm_RemoteSleepIndication from that bus before starting shutdown of that network.

SWS_Nm_00232 requirement

Type of error Related error code Error value API service used without Nm interface initialization NM_E_UNINIT 0x00 API Service called with wrong parameter but not with NULL-pointer NM_E_INVALID_CHANNEL 0x01 API service called with a NULL pointer NM_E_PARAM_POINTER 0x02

SWS_Nm_00233 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , all function calls containing a NetworkHandleType parameter shall raise the error NM_- E_INVALID_CHANNEL if the network parameter is not a configured network handle.

SWS_Nm_00235 requirement

If a coordinated shutdown has been aborted and Nm re- ceives E_NOT_OK on a <Bus>Nm_NetworkRequest , that network shall not be con- sidered awake when the conditions for initiating a coordinated shutdown are evaluated again.

SWS_Nm_00236 requirement

If a coordinated shutdown has been initiated and Nm re- ceives E_NOT_OK on a <Bus>Nm_NetworkRelease , the shutdown shall be imme- diately aborted. For all networks that have not entered ”bus-sleep mode“, Nm shall request the networks. This includes the network that indicated an error for <Bus> Nm_NetworkRelease . As soon as this has been done, the conditions for initiating coordinated shutdown can be evaluated again. This applies also to networks that were not actively participating in the current coordinated shutdown.

SWS_Nm_00241 requirement

Configuration of Nm_SetUserData : If NmComUserDataSup- port is TRUE the API Nm_SetUserData shall not be available.

SWS_Nm_00243 requirement

The Nm Interface shall optionally include the header file of De- fault Error Tracer (depending on the pre-processor switch NmDevErrorDetect, see ECUC_Nm_00203). • Det.h for service of the Default Error Tracer.

SWS_Nm_00245 requirement

If the ComM calls Nm_PassiveStartUp () for a network that is part of a coordinated cluster of networks, the Nm coordinator functionality shall treat this call as if the ComM had called Nm_NetworkRequest (). In case BusNmType is not set to NM_BUSNM_LOCALNM the Nm shall forward a call of <Bus>Nm_NetworkRe- quest to the lower layer and accordingly, the network shall be counted as requested by the NM coordinator.

SWS_Nm_00247 requirement

The code file structure shall not be defined within this specification completely. At this point it shall be pointed out that the code-file structure shall include the following files named:

SWS_Nm_00249 requirement

If NmStateReportEnabled is set to TRUE and NmStateRe- portSignalRef is configured, when one of the state transitions mentioned in Table 7.4 occur, Nm_StateChangeNotification shall call Com_SendSignal(uint8, Com_SignalIdType, const void * ) for the signal referenced by NmStateRe- portSignalRef with the value according to Table 7.4

SWS_Nm_00251 requirement

Configuration of Nm_CarWakeUpIndication : Optional If NmCarWakeUpRxEnabled is TRUE , The Nm shall provide the API Nm_CarWake- UpIndication .

SWS_Nm_00252 requirement

If the <bus>Nm calls Nm_CarWakeUpIndication and NmCar- WakeUpCallout is defined, the NM Interface shall call the callout function defined by NmCarWakeUpCallout with nmNetworkHandle as parameter.

SWS_Nm_00255 requirement

Configuration of Nm_CoordReadyToSleepIndication : Op- tional If NmCoordinatorSyncSupport is set to TRUE , the Nm shall provide the API Nm_- CoordReadyToSleepIndication .

SWS_Nm_00256 requirement

The NM-Coordinator shall support two or more NM- Coordinators connected to the same NM Cluster .

SWS_Nm_00257 requirement

On its passively coordinated channels a NM-Coordinator shall send Nm messages only if the node has a network management request pending or a connected network which is coordinated actively by that NM Coordinator is not ready to sleep.

SWS_Nm_00259 requirement

The NM Coordinator shall set the NMcoordinatorSleepReady bit in the NM message via <Bus>Nm_SetSleepReadyBit to the value 1 at his actively coordinated channels, IF all nodes of the NM Coordination cluster are ready to sleep (RemoteSleepIndi- cation) AND IF NmSynchronizingNetwork is enabled a Nm_SynchronizationPoint () call has been received on the corresponding channel AND If all channels of this NM Coordination cluster are configured as NmActiveCo- ordinator == TRUE . AND If the NmBusType is not configured to NM_BUSNM_LOCALNM .

SWS_Nm_00261 requirement

If Nm_CoordReadyToSleepIndication is received on a passively coordinated channel the NmCoordinator shall set the NMCoordinatorSleep- Ready bit to SET (1) via API call to <Bus>Nm_SetSleepReadyBit on all actively coordinated channels.

SWS_Nm_00262 requirement

The NM Coordinator shall start coordinated shutdown af- ter the Sleep Ready Bit with SET status has been requested.

SWS_Nm_00267 requirement

NM Coordinator shall set the NMCoordinatorSleepReady bit to UNSET (0) via API call to <Bus>Nm_SetSleepReadyBit on all actively coordinated channels if the coordinated shutdown has been aborted for any reason.

SWS_Nm_00271 requirement

If Nm_CoordReadyToSleepCancellation is received on a passively coordinated channel the NmCoordinator shall set the NMCoordinatorSleep- Ready bit to UNSET (0) via API call to <Bus>Nm_SetSleepReadyBit on all actively coordinated channels.

SWS_Nm_00273 requirement

Configuration of Nm_CoordReadyToSleepCancellation : Op- tional If NmCoordinatorSyncSupport is set to TRUE , the Nm shall provide the API Nm_- CoordReadyToSleepCancellation .

SWS_Nm_00277 requirement

Configuration of Nm_RemoteSleepIndication : This function is only available if NmRemoteSleepIndEnabled is set to TRUE .

SWS_Nm_00278 requirement

Configuration of Nm_RemoteSleepCancellation : This func- tion is only available if NmRemoteSleepIndEnabled is set to TRUE .

SWS_Nm_00279 requirement

If NmCoordinatorSupportEnabled is set to TRUE, the Nm_- MainFunction API shall be available.

SWS_Nm_00280 requirement

The functionality of coordinating nested sub busses shall be avail- able if the NmCoordinatorSyncSupport parameter is set to TRUE .

SWS_Nm_00281 requirement

NmGlobalCoordinatorTime shall be set at least to the maxi- mum time needed to shut down all Networks coordinated.

SWS_Nm_00283 requirement

The Configuration pointer ConfigPtr shall always have a NULL_PTR value.

SWS_Nm_00284 requirement

If the NmGlobalCoordinatorTime is zero the shutdown delay timer of all channels shall also be zero.

SWS_Nm_00285 requirement

If the <bus>Nm calls Nm_CarWakeUpIndication and Nm- CarWakeUpCallout is not defined, the NM Interface shall call the function BswM_Nm_CarWakeUpIndication with nmNetworkHandle as parameter.

SWS_Nm_00286 requirement

If Nm_DisableCommunication is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

SWS_Nm_00287 requirement

If Nm_EnableCommunication is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

SWS_Nm_00288 requirement

If Nm_SetUserData is called with a network handle where Nm- PassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

SWS_Nm_00289 requirement

If Nm_RepeatMessageRequest is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

SWS_Nm_00290 requirement

If Nm_CheckRemoteSleepIndication is called with a network handle where NmPassiveModeEnabled is set to TRUE it shall not execute any func- tionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

SWS_Nm_00292 requirement

If the NM Coordinator functionality is configured, the con- figuration parameter NmCycletimeMainFunction shall be configured (see [SWS_Nm_00118]).

SWS_Nm_00293 requirement

If on a coordinated network the coordinator detects a mode change to NM_MODE_SYNCHRONIZE , NM_MODE_PREPARE_BUS_SLEEP or NM_BUS_- SLEEP AND the coordinated cluster this network belongs to has not started the shut- down process AND if there is no internal network mode request for that channel by ComM, the coordinator shall treat this network as remote sleep and shall call <Bus> Nm_NetworkRelease for this network. If additionally for this network the configuration parameter NmSynchronizingNetwork is TRUE then the coordinator shall not wait for Nm_SynchronizationPoint on this network.

SWS_Nm_00302 requirement

If NmPnEiraCalcEnabled is set to TRUE, then Nm shall provide the possibility to store external and internal requested PNCs combined over all NM- channels where NmPnEnabled is set to TRUE. At initialization the values of all PNCs within EIRA shall be set to 0 (PNC released).

SWS_Nm_00305 requirement

If the reception of PN shutdown message via callback function Nm_ForwardSynchronizedPncShutdown is indicated, then Nm shall stop the ERA related monitoring of external PNC requests of the PNCs (see [SWS_Nm_00324])) which are indicated for an PNC shutdown (PNC bit set to '1') in the given PNC bit vector , set the corresponding ERA bits to '0' in the ERA of the indicated NM-channel and forward the indication to ComM with the corresponding ComMChan- nel by calling ComM_Nm_ForwardSynchronizedPncShutdown(<ComMChannel>, <PncBitVector>) .

SWS_Nm_00308 requirement

The PNC bit vector filter algorithm shall evaluate the bytes of the given PNC bit vector in the context of Nm_PncBitVectorRxIndication .

SWS_Nm_00310 requirement

Every bit (PNC bit) of the PNC bit vector represents one Par- tial Network Cluster (PNC). If the PNC bit is set to 1 the Partial Network Cluster is requested. If the bit is set to 0 there is no request for this PNC.

SWS_Nm_00311 requirement

The PNC bit vector filter algorithm shall compare (bitwise AND) the received PNC bit vector with the PN filter mask to detect if a relevant PNC is requested or not. Each PNC bit of the PN filter mask shall have the following meaning: • 0: The PNC request is irrelevant for the ECU. The communication stack of the ECU is not kept awake if this bit is set in a received PNC bit vector . • 1: The PNC request is relevant for the ECU. The communication stack of the ECU is kept awake if this bit is set in a received PNC bit vector .

SWS_Nm_00312 requirement

If Nm_PncBitVectorRxIndication is called, NmPnEiraCal- cEnabled or NmPnEraCalcEnabled is set to TRUE and at least one PNC bit is de- tected as relevant PNC request according to [SWS_Nm_00311] in the given PNC bit vector , the OUT parameter RelevantPncRequestDetectedPtr shall be set to TRUE. Otherwise the value of RelevantPncRequestDetectedPtr shall be set to FALSE.

SWS_Nm_00313 requirement

If • NmPnEiraCalcEnabled is TRUE • and a PNC bit vector is received via Nm_PncBitVectorRxIndica- tion (<Nm-channel>, < PNC bit vector of external PNC requests>) or Nm_ForwardSynchronizedPncShutdown (<NM-channel>, < PNC bit vec- tor PNCs indicated for a synchronized shutdown>) • and PNCs are requested within this message (bits set to 1) • and the requested PNCs are set to 1 within the configured PN filter mask then Nm shall store the request information (value 1) for these PNCs as "PNC re- quested".

SWS_Nm_00314 requirement

⌊ DRAFT g If • NmPnEiraCalcEnabled is TRUE • and a transmission of a PNC bit vector is indicated via Nm_PncBitVec- torTxIndication (<NM-channel>, <buffer to provide the unfiltered PNC bit vector of aggregated internal PNC requests >) • and PNCs are requested within the stored unfiltered PNC bit vector (bits set to 1) • and the requested PNCs of the stored unfiltered PNC bit vector for internal PNC requests are set to 1 within the configured PN filter mask then Nm shall store the request information (value 1) for these PNCs as "PNC re- quested".

SWS_Nm_00317 requirement

If Nm_UpdateIRA (<NM-channel>, <PncBitVector of aggregated internal PNC requests>) is called, the Nm shall store the received unfilterred PncBitVec- tor per given NM-channel. Therefore, the Nm module shall copy the amount of bytes with respect of the configured length (see NmPncBitVectorLength ) of the given NM- Channel.

SWS_Nm_00318 requirement

If NmPnEiraCalcEnabled is TRUE, then Nm shall provide a pos- sibility to monitor each relevant PNC in the context of Nm_Mainfunction . The moni- toring shall consider the PNC state, if the PNC is still externally or internally requested on at least one of the relevant NM-channels.

SWS_Nm_00319 requirement

If NmPnEiraCalcEnabled is TRUE and every time a PNC is stored as "PNC requested" (see [SWS_Nm_00313]), then the monitoring for this PNC shall be restarted with respect to NmPnResetTime in the context of Nm_Mainfunc- tion .

SWS_Nm_00320 requirement

If NmPnEiraCalcEnabled is TRUE and a PNC is not requested again within NmPnResetTime the corresponding stored value for this PNC shall be set to PNC released (value 0) in the context of Nm_Mainfunction .

SWS_Nm_00321 requirement

If NmPnEiraCalcEnabled is TRUE and the stored value for a PNC is set to PNC requested or back to PNC released (see [SWS_Nm_00313] and [SWS_Nm_00320]), then Nm shall forward the changed state of EIRA to ComM by calling ComM_Nm_UpdateEIRA(<PncBitVector of EIRA>)) .

SWS_Nm_00322 requirement

If NmPnEraCalcEnabled is TRUE, then Nm shall provide the pos- sibility to store relevant external PNCs request per channel. At initialization the values of all PNCs shall be set to 0 (PNC released).

SWS_Nm_00323 requirement

If • NmPnEraCalcEnabled is TRUE • and a PNC bit vector is received via Nm_PncBitVectorRxIndication(<NM- channel>, <PncBitVector of external PNC requests>) • and PNCs are requested within this message (bits set to 1) • and the requested PNCs are set to 1 within the configured PN filter mask then Nm shall store the PNC request information (value 1) for these PNCs as "PNC requested" per given channel.

SWS_Nm_00324 requirement

If NmPnEraCalcEnabled is TRUE, then Nm shall provide a pos- sibility to monitor each relevant PNC per channel in the context of Nm_Mainfunction . The monitoring shall consider the PNC state, if the PNC is still externally requested on the corresponding NM-channels.

SWS_Nm_00325 requirement

If NmPnEraCalcEnabled is TRUE, then every time a PNC is stored as "PNC requested" (see [SWS_Nm_00323]), the monitoring for this PNC shall be restarted with respect to NmPnResetTime in the context of Nm_Mainfunction .

SWS_Nm_00326 requirement

If NmPnEraCalcEnabled is TRUE and a PNC is not requested again within NmPnResetTime the corresponding stored value for this PN shall be set to PNC released (value 0).

SWS_Nm_00327 requirement

If NmPnEraCalcEnabled is TRUE and the stored value for a PNC is set to PNC requested or back to PNC released (see [SWS_Nm_00323] and [SWS_Nm_00326]), then Nm shall forward the changed state of ERA of the affected NM-channel to ComM by calling ComM_Nm_UpdateERA(<ComMChannel>, <PncBitVector of ERA>) .

SWS_Nm_00328 requirement

If NmPartialNetworkSupportEnabled is set to TRUE, then all PNC reset timers shall be stopped at initialization.

SWS_Nm_00329 requirement

If NmPartialNetworkSupportEnabled is set to TRUE, then the evaluation of the PNC states in combination with PNC reset timers shall consider at least the following order: • Update PNC reset timers • Evaluate the PNC states • Perform actions based on the current state of PNC reset timer and PNC requests

SWS_Nm_00330 requirement

For all configured NM-channel where NmPartialNetworkSup- portEnabled is set TRUE, Nm shall provide the possibility to store external and in- ternal requested PNCs combined over all NM-channels where NmPnEnabled is set to TRUE. At initialization the values of all PNCs within EIRA shall be set to 0 (PNC released).

SWS_Nm_00331 requirement

If NmPnEiraCalcEnabled is TRUE and NmPnEraCalcEn- abled is TRUE , the PNC status information has to be stored separately for both, the EIRA and ERA information (compare [SWS_Nm_00302] and [SWS_Nm_00322]).

SWS_Nm_00332 requirement

⌊ DRAFT g If NmPnEiraCalcEnabled is set to TRUE and Nm_- PncBitVectorTxIndication (NetworkHandle, PncBitVectorPtr) is called, then Nm shall copy the unfiltered PNC bit vector for internal PNC requests of the given NM- channel to the buffer indicated by PncBitVectorPtr.

SWS_Nm_00483 requirement

If BusNmType is NM_BUSNM_LOCALNM and ComM requests Nm_- PassiveStartUp() or Nm_NetworkRequest() then Nm shall inform ComM about start of network by calling ComM_Nm_NetworkMode() . Rationale : Buses of type NM_LOCAL_NM which are coordinated do not have a network management message but are synchronized e.g. by a master - slave concept like LIN). These Bus-Types are always directly started on request by ComM but the shutdown will be done by coordinator algorithm.

SWS_Nm_00484 requirement

The Nm module shall apply appropriate mechanisms to allow calls of its APIs from other partitions than its main function, e.g. by providing a Nm satellite.

SWS_Nm_00485 requirement

Nm shall interact with <Bus>Nm (i.e. call <Bus>Nm APIs) only in the partition, where the respective <Bus>Nm module is assigned to.

SWS_Nm_00486 requirement

The Nm kernel shall be assigned to the same partition as ComM kernel in order to keep the interaction between these two modules on an intra-partition basis.

SWS_Nm_00487 requirement

When Nm_StateChangeNotification is called to report a change of the Nm state, Nm shall call BswM_Nm_StateChangeNotification() with the reported current state.

SWS_Nm_00488 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_PassiveStartUp shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00489 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_NetworkRequest shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00490 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_NetworkRelease shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00491 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_DisableCommunication shall raise the error NM_E_INVALID_- CHANNEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00492 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_EnableCommunication shall raise the error NM_E_INVALID_- CHANNEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00493 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_SetUserData shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00494 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_GetUserData shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00495 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_GetPduData shall raise the error NM_E_INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00496 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_RepeatMessageRequest shall raise the error NM_E_INVALID_- CHANNEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00497 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_GetNodeIdentifier shall raise the error NM_E_INVALID_CHAN- NEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00498 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_GetLocalNodeIdentifier shall raise the error NM_E_INVALID_- CHANNEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00499 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_CheckRemoteSleepIndication shall raise the error NM_E_IN- VALID_CHANNEL if the parameter nmNetworkHandle is not a configured network handle.

SWS_Nm_00500 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_GetState shall raise the error NM_E_INVALID_CHANNEL if the pa- rameter nmNetworkHandle is not a configured network handle.

SWS_Nm_00501 requirement

If NmDynamicPncToChannelMappingEnabled is set to TRUE and Nm_StateChangeNotification is called, then ComM_Nm_RepeatMessageLeftIndication() shall be called when nmPre- viousState is set to NM_STATE_REPEAT_MESSAGE and nmCurrentState is different from NM_STATE_REPEAT_MESSAGE .

SWS_Nm_00502 requirement

Nm_PnLearningRequest shall only be available if NmDynam- icPncToChannelMappingSupport is set to TRUE .

SWS_Nm_00503 requirement

If Nm_PnLearningRequest is called with a network handle for a bus system where NmDynamicPncToChannelMappingEnabled is set to FALSE Nm shall not execute any functionality and return with E_NOT_OK . If NmDevErrorDetect is set to TRUE then it shall raise the error NM_E_INVALID_CHANNEL in this case.

SWS_Nm_00504 requirement

If Nm_RepeatMessageIndication is called with pn- LearningBitSet set to TRUE and NmDynamicPncToChannelMappingEn- abled is set to TRUE for the provided nmNetworkHandle Nm shall call ComM_Nm_PncLearningBitIndication with the corresponding network handle.

SWS_Nm_00505 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_PnLearningRequest shall raise the error NM_E_INVALID_CHAN- NEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00506 requirement

⌊ DRAFT g If function Nm_RequestSynchronizedPncShutdown is called, NmSynchronizedPncShutdownEnabled is set to TRUE and NmStan- dardBusType is set to a type other than NM_BUSNM_LOCALNM , the function shall immediately forward the call to the affected <Bus>Nm by calling <Bus> Nm_RequestSynchronizedPncShutdown . Otherwise the function shall return with E_NOT_OK .

SWS_Nm_00507 requirement

⌊ OBSOLETE g The indication of a received PN shutdown message via callback function Nm_ForwardSynchronizedPncShutdown shall be forwarded to ComM with the corresponding ComMChannel by calling ComM_Nm_ForwardSynchronizedPncShutdown(<ComMChannel>) .

SWS_Nm_00508 requirement

If the pre-processor switch NmDevErrorDetect is set to TRUE , the function Nm_RequestSynchronizedPncShutdown shall raise the error NM_E_- INVALID_CHANNEL if the parameter NetworkHandle is not a configured network handle.

SWS_Nm_00509 requirement

[SWS_Nm_00509] occur, Nm_StateChangeNotification shall call Com_SendSignal(uint8, Com_SignalIdType, const void*) for the signal referenced by NmStateRe- portSignalRef with the value according to [SWS_Nm_00509].⌋ Note: The transmitted signal has to be at least a 6 bit signal in Com that should be part of the NM message.

SWS_Nm_00521 requirement

If function Nm_RequestSynchronizedPncShutdown is called, NmSynchronizedPncShutdownEnabled is set to TRUE and NmStandardBusType of the given NM-channel is set to a type other than NM_BUSNM_LOCALNM , the Nm module shall store the given PNC (PncId) per given NM-channel ( NetworkHandle ) as a pending request for a synchronized PNC shutdown.

SWS_Nm_00523 requirement

If NmSynchronizedPncShutdownEnabled is set to TRUE, re- quests for synchronized PNC shutdown are pending and PNC shutdown handling has been deactived, then Nm shall activate the PNC shutdown handling by calling <Bus> Nm_ActivateTxPnShutdownMsg .

SWS_Nm_00524 requirement

If NmSynchronizedPncShutdownEnabled is set to TRUE, no requests for synchronized PNC shutdown are pending, PNC shutdown handling has been activated, then Nm shall deactivate the PNC shutdown handling by calling <Bus> Nm_DeactivateTxPnShutdownMsg .

SWS_Nm_00525 requirement

If NmPnShutdownMessageRetransmissionDuration is configured and Nm_RequestSynchronizedPncShutdown is called (refer to [SWS_Nm_00523]), then the corresponding retransmission timer for PN shutdown messages shall be started with NmPnShutdownMessageRetransmissionDura- tion on all affected NM-channels.

SWS_Nm_00527 requirement

If NmSynchronizedPncShutdownEnabled is set to TRUE, PNC shutdown handling has been activated (refer to [SWS_Nm_00523]) and Nm_- PncBitVectorTxConfirmation is called with E_OK, then the Nm module shall consider those PNC IDs, stored as pending request for a synchronized PNC shut- down of the given NM-channel, as completed which were indicated by the given PNC bit vector (PNC bit set '1') and remove them from storage. Additionally, if NmPn- ShutdownMessageRetransmissionDuration is configured, then the Nm module shall cancel the retransmission timer for PN shutdown messages of the affected NM- channel.

SWS_Nm_00529 requirement

If NmSynchronizedPncShutdownEnabled is set to TRUE and the Nm module has stored PNC IDs as pending request for a synchronized PNC shut- down, then Nm shall remove those PNC IDs from storage which are either externally or internally requested again: • Nm shall check on reception of an PNC bit vector via call of Nm_- PncBitVectorRxIndication , if externally requested PNCs are received. • Nm shall check on update of an PNC bit vector via call of Nm_UpdateIRA , if internal PNC requests are available .

SWS_Nm_00530 requirement

If NmSynchronizedPncShutdownEnabled is set to TRUE, NmPnShutdownMessageRetransmissionDuration is not configured, the corre- sponding <Bus>Nm module of this NM-channel has indicated transmission request via call of Nm_PncBitVectorTxIndication and Nm_PncBitVectorTxConfir- mation is called with result E_NOT_OK (transmission of the given PNC bit vector failed), then the Nm shall remove the PNC IDs stored as pending request for a syn- chronized PNC shutdown of the corresponding NM-channel and report the runtime error NM_E_TRANSMISSION_OF_PN_SHUTDOWN_MESSAGE_FAILED to DET .

SWS_Nm_00532 requirement

If NmSynchronizedPncShutdownEnabled is set to TRUE and a retransmission timer for a PN shutdown message (see NmP- nShutdownMessageRetransmissionDuration ) expires, then Nm shall remove the pending request for a synchronized PNC shutdown of the cor- responding NM-channel from the storage and report the runtime error NM_E_TRANSMISSION_OF_PN_SHUTDOWN_MESSAGE_FAILED to DET .

SWS_Nm_00533 requirement

If NmPartialNetworkSupportEnabled is set to TRUE, then PNC shutdown handling shall be considered as deactivated at initialization.

SWS_Nm_00534 requirement

If • NmPnEiraCalcEnabled is set to TRUE • and a transmission of a PNC bit vector is indicated via Nm_PncBitVec- torTxIndication (<NM-channel>, <buffer to provide the unfiltered PNC bit vector of aggregated internal PNC requests >) • and no requests for a synchronized PNC shutdown are pending on the given NM-channel • and PNCs are requested within the stored unfiltered PNC bit vector (bits set to 1) • and the requested PNCs of the stored unfiltered PNC bit vector for internal PNC requests are set to 1 within the configured PN filter mask then Nm shall store the request information (value 1) for these PNCs as "PNC re- quested".

SWS_Nm_00535 requirement

If NmPnEiraCalcEnabled is TRUE, Nm_PncBitVec- torTxIndication (<NM-channel>, PncBitVectorPtr <buffer to provide the unfiltered PNC bit vector>) is called and no requests for synchronized PNC shutdown are pending on the given NM-channel, then Nm shall copy the unfiltered PNC bit vector for internal PNC requests of the given NM-channel to the buffer indicated by PncBitVectorPtr .

SWS_Nm_00536 requirement

If • NmPnEiraCalcEnabled is set to TRUE • and requests for a synchronized PNC shutdown are pending on the given NM- channel • and a transmission of a PNC bit vector is indicated via Nm_PncBitVec- torTxIndication (<NM-channel>, <buffer to provide the PNC bit vector of the aggregated synchronized PNC requests >), • and PNCs are requested for a synchronized PNC shutdown within the PNC bit vector (bits set to 1) • and the aggregated synchronized PNC requests of the PNC bit vector are set to 1 within the configured PN filter mask, then Nm shall store the request information (value 1) for these PNCs as "PNC re- quested".

SWS_Nm_00537 requirement

If NmPnEiraCalcEnabled is set to TRUE, Nm_PncBitVec- torTxIndication (NetworkHandle <NM-channel>, PncBitVectorPtr <buffer to pro- vide the aggregated synchronized PNC requests as bit vector>) is called and requests for synchronized PNC shutdown are pending on the given NM-channel, then Nm shall set the buffer indicated by PncBitVectorPtr as follows : • set all according bits to 1 that relate to a PNC requested for synchronized PNC shutdown of the given NM-channel • set all other bits to 0

SWS_Nm_00999 requirement

Not applicable requirements These requirements are not ap- plicable to this specification.

SWS_Nm_91011 requirement

Type of error Related error code Error value Retransmission timer for a PN shutdown message has expired, because a PN shutdown message could not be transmitted on the network within the configured duration of re-transmission. NM_E_TRANSMISSION_OF_PN_SHUTDOWN_ MESSAGE_FAILED 0x10

The length of all configured NmPnFilterMaskByte s shall have the same length (in bytes) as the NmPncBitVectorLength of the cor- responding NM-channel. A configuration tool shall reject a configuration as invalid (error), if the length of the configured NmPnFilterMaskByte s differ from the config- ured NmPncBitVectorLength of the corresponding NM-channel.

SWS_Nm_NA_00999 requirement

Not applicable requirements These requirements are not applicable to this specification.