AUTOSAR SWS NetworkManagementInterface
AUTOSAR SWS NetworkManagementInterface
Specification of
Document Title NetworkManagement Interface
Document Owner AUTOSAR
Document Responsibility AUTOSAR
Document Identification No 228
• NmMultipleChannelsEnabled
removed
• Added Mandatory Interfaces
provided by ComM to Chapter 8.6.1
• move NmPassiveMode
• Enabled form global configuration to
AUTOSAR channel configuration
2011-12-22 4.0.3 • Removed Nm_ReturnType
Administration
• Fixed some min and max values of
FloatPAramDef configuration
parameters
• Added support of
NmCarWakup-Feature
• Added support of coordinated
shutdown of nested sub-busses
• Release check added
• DET Error Code for false Pointer
AUTOSAR added
2009-12-18 4.0.1 • ChannelID harmonized in
Administration
COM-Stack
• Nm-State-changes in Userdata via
NmIf
• Remove explicit support for OSEK
NM from specification
• NM Coordinator functionality
AUTOSAR reworked (chapter 7.2 and 7.2.4)
2010-02-02 3.1.4
Administration • Debugging functionality added
• Link time configuration variant
introduced
• Legal disclaimer revised
AUTOSAR
2008-08-13 3.1.1 Legal disclaimer revised
Administration
AUTOSAR
2007-12-21 3.0.1 Initial release
Administration
Disclaimer
This work (specification and/or software implementation) and the material contained in
it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR and the
companies that have contributed to it shall not be liable for any use of the work.
The material contained in this work is protected by copyright and other types of intel-
lectual property rights. The commercial exploitation of the material contained in this
work requires a license to such intellectual property rights.
This work may be utilized or reproduced without any modification, in any form or by
any means, for informational purposes only. For any other purpose, no part of the work
may be utilized or reproduced, in any form or by any means, without permission in
writing from the publisher.
The work has been developed for automotive applications only. It has neither been
developed, nor tested for non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.
Table of Contents
1 Introduction and functional overview 8
3 Related documentation 10
3.1 Input documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Related specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Constraints and assumptions 11
4.1 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 Specific limitations of the current release . . . . . . . . . . . . . . . . . 11
4.3 Applicability to automotive domains . . . . . . . . . . . . . . . . . . . . 11
5 Dependencies to other modules 12
5.1 Interfaces to modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.1.1 ComM, CanNm, J1939Nm, FrNm, UdpNm, generic bus spe-
cific NM layers and CDD . . . . . . . . . . . . . . . . . . . . 12
5.1.2 Error handling modules . . . . . . . . . . . . . . . . . . . . . 13
5.1.3 BSW Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2 File structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2.1 Code file structure . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2.2 Header file structure . . . . . . . . . . . . . . . . . . . . . . . 14
6 Requirements traceability 15
7 Functional specification 35
7.1 Base functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.2 NM Coordinator functionality . . . . . . . . . . . . . . . . . . . . . . . . 35
7.2.1 Applicability of the NM Coordinator functionality . . . . . . . 36
7.2.2 Keeping coordinated busses alive . . . . . . . . . . . . . . . 37
7.2.3 Shutdown of coordinated busses . . . . . . . . . . . . . . . . 38
7.2.4 Coordination of nested sub-busses . . . . . . . . . . . . . . 40
7.2.5 Calculation of shutdown timers . . . . . . . . . . . . . . . . . 44
7.2.6 Synchronization Use Case 1 - Synchronous command . . . 44
7.2.7 Synchronization Use Case 2 - Synchronous initiation . . . . 45
7.2.8 Synchronization Use Case 3 - Synchronous network sleep . 45
7.2.8.1 Examples . . . . . . . . . . . . . . . . . . . . . . . . 46
7.3 Wakeup and abortion of the coordinated shutdown . . . . . . . . . . . 48
7.3.1 External network wakeup . . . . . . . . . . . . . . . . . . . . 48
7.3.2 Coordinated wakeup . . . . . . . . . . . . . . . . . . . . . . . 48
7.3.3 Abortion of the coordinated shutdown . . . . . . . . . . . . . 48
7.4 Prerequisites of bus specific Network Management modules . . . . . . 50
7.4.1 Prerequisites for basic functionality . . . . . . . . . . . . . . 51
7.4.2 Prerequisites for NM Coordinator functionality . . . . . . . . 52
7.4.3 Configuration of global parameters for bus specific networks 54
7.5 NM_BUSNM_LOCALNM . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.6 Additional Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.6.1 Nm_CarWakeUpIndication . . . . . . . . . . . . . . . . . . . 55
7.6.2 Nm_StateChangeNotification . . . . . . . . . . . . . . . . . . 55
7.7 Error classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.7.1 Development Errors . . . . . . . . . . . . . . . . . . . . . . . 56
7.7.2 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.7.3 Transient Faults . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.7.4 Production Errors . . . . . . . . . . . . . . . . . . . . . . . . 56
7.7.5 Extended Production Errors . . . . . . . . . . . . . . . . . . . 56
7.8 Error detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.9 Error notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8 API specification 58
8.1 Imported types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2 Type definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.1 Nm_ModeType . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.2 Nm_StateType . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.3 Nm_BusNmType . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.4 Nm_ConfigType . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.3 Function definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.1 Standard services provided by NM Interface . . . . . . . . . 60
8.3.1.1 Nm_Init . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.1.2 Nm_PassiveStartUp . . . . . . . . . . . . . . . . . . 60
8.3.1.3 Nm_NetworkRequest . . . . . . . . . . . . . . . . . 61
8.3.1.4 Nm_NetworkRelease . . . . . . . . . . . . . . . . . . 62
8.3.2 Communication control services provided by NM Interface . 63
8.3.2.1 Nm_DisableCommunication . . . . . . . . . . . . . . 63
8.3.2.2 Nm_EnableCommunication . . . . . . . . . . . . . . 64
8.3.3 Extra services provided by NM Interface . . . . . . . . . . . . 65
8.3.3.1 Nm_SetUserData . . . . . . . . . . . . . . . . . . . . 65
8.3.3.2 Nm_GetUserData . . . . . . . . . . . . . . . . . . . 66
8.3.3.3 Nm_GetPduData . . . . . . . . . . . . . . . . . . . . 67
8.3.3.4 Nm_RepeatMessageRequest . . . . . . . . . . . . . 67
8.3.3.5 Nm_GetNodeIdentifier . . . . . . . . . . . . . . . . . 68
8.3.3.6 Nm_GetLocalNodeIdentifier . . . . . . . . . . . . . . 69
8.3.3.7 Nm_CheckRemoteSleepIndication . . . . . . . . . . 70
8.3.3.8 Nm_GetState . . . . . . . . . . . . . . . . . . . . . . 71
8.3.3.9 Nm_GetVersionInfo . . . . . . . . . . . . . . . . . . . 71
8.4 Call-back notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.4.1 Standard Call-back notifications . . . . . . . . . . . . . . . . 72
8.4.1.1 Nm_NetworkStartIndication . . . . . . . . . . . . . . 72
8.4.1.2 Nm_NetworkMode . . . . . . . . . . . . . . . . . . . 73
8.4.1.3 Nm_BusSleepMode . . . . . . . . . . . . . . . . . . 73
8.4.1.4 Nm_PrepareBusSleepMode . . . . . . . . . . . . . . 74
8.4.1.5 NM_SynchronizeMode . . . . . . . . . . . . . . . . . 75
8.4.1.6 Nm_RemoteSleepIndication . . . . . . . . . . . . . . 75
8.4.1.7 Nm_RemoteSleepCancellation . . . . . . . . . . . . 76
8.4.1.8 Nm_SynchronizationPoint . . . . . . . . . . . . . . . 76
8.4.1.9 Nm_CoordReadyToSleepIndication . . . . . . . . . . 77
8.4.1.10 Nm_CoordReadyToSleepCancellation . . . . . . . . 78
8.4.2 Extra Call-back notifications . . . . . . . . . . . . . . . . . . 78
8.4.2.1 Nm_PduRxIndication . . . . . . . . . . . . . . . . . . 78
8.4.2.2 Nm_StateChangeNotification . . . . . . . . . . . . . 79
8.4.2.3 Nm_RepeatMessageIndication . . . . . . . . . . . . 80
8.4.2.4 Nm_TxTimeoutException . . . . . . . . . . . . . . . 80
8.4.2.5 Nm_CarWakeUpIndication . . . . . . . . . . . . . . . 81
8.5 Scheduled functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.5.1 Nm_MainFunction . . . . . . . . . . . . . . . . . . . . . . . . 82
8.6 Expected interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.6.1 Mandatory Interfaces . . . . . . . . . . . . . . . . . . . . . . 82
8.6.2 Optional Interfaces . . . . . . . . . . . . . . . . . . . . . . . . 83
8.6.3 Configurable Interfaces . . . . . . . . . . . . . . . . . . . . . 84
8.6.3.1 NmCarWakeUpCallout . . . . . . . . . . . . . . . . . 84
8.7 Version Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9 Sequence diagrams 86
9.1 Basic functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
9.2 Seq of NM Coordinator functionality . . . . . . . . . . . . . . . . . . . . 86
10 Configuration specification 88
10.1 How to read this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . 88
10.2 Configuration parameters . . . . . . . . . . . . . . . . . . . . . . . . . 88
10.2.1 Nm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
10.3 Global configurable parameters . . . . . . . . . . . . . . . . . . . . . . 89
10.3.1 NmGlobalConfig . . . . . . . . . . . . . . . . . . . . . . . . . 89
10.3.2 NmGlobalConstants . . . . . . . . . . . . . . . . . . . . . . . 90
10.3.3 NmGlobalProperties . . . . . . . . . . . . . . . . . . . . . . . 91
10.3.4 NmGlobalFeatures . . . . . . . . . . . . . . . . . . . . . . . . 92
10.4 Channel configurable parameters . . . . . . . . . . . . . . . . . . . . . 97
10.4.1 NmChannelConfig . . . . . . . . . . . . . . . . . . . . . . . . 97
10.4.2 NmBusType . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
10.4.3 NmGenericBusNmConfig . . . . . . . . . . . . . . . . . . . . 103
10.4.4 NmStandardBusNmConfig . . . . . . . . . . . . . . . . . . . 104
10.5 Published Information . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
A Not applicable requirements 105
Terms: Definition:
Network mode where all interconnected communication con-
Bus-Sleep Mode
trollers are in the sleep mode.
NM-Channel Logical channel associated with the NM-cluster
NM-Cluster Set of NM nodes coordinated with the use of the NM algorithm.
A functionality of the Nm which allows coordination of network
NM-Coordinator
sleep for multiple NM Channels.
Packet of information exchanged for purposes of the NM algo-
NM-Message
rithm.
Timeout in the NM algorithm that initiates transition into Bus-
NM-Timeout
Sleep Mode.
Supplementary application specific piece of data that is attached
NM User Data
to every NM message sent on the bus.
Node address information exchanged for purposes of the NM al-
Node Identifier
gorithm.
Node Identifier List List of Node Identifiers recognized by the NM algorithm.
Physical communication medium to which a NM node/ecu is con-
Bus
nected to.
Entity of all NM nodes/ecus which are connected to the same
network
bus.
channel Logical bus to which the NM node/ecu is connected to.
Shutdown of two or more busses in a way that their shutdown is
Coordinated shutdown
finished coinciding.
Coordination algorithm Initiation of coordinated shutdown in case all conditions are met.
3 Related documentation
[1] Glossary
AUTOSAR_TR_Glossary
[2] General Specification of Basic Software Modules
AUTOSAR_SWS_BSWGeneral
[3] Specification of CAN Network Management
AUTOSAR_SWS_CANNetworkManagement
[4] Specification of FlexRay Network Management
AUTOSAR_SWS_FlexRayNetworkManagement
[5] Specification of UDP Network Management
AUTOSAR_SWS_UDPNetworkManagement
[6] Specification of Network Management for SAE J1939
AUTOSAR_SWS_SAEJ1939NetworkManagement
[7] General Requirements on Basic Software Modules
AUTOSAR_SRS_BSWGeneral
[8] Requirements on Network Management
AUTOSAR_SRS_NetworkManagement
4.1 Limitations
1. The Generic Network Management Interface can only be applied to communica-
tion systems that support broadcast communication and ’bus-sleep mode’.
2. There is only one instance of the Generic Network Management Interface layer
for all NM-Clusters. This instance manages all channels where a NM is used.
3. The Generic Network Management Interface shall only include the common
modes, definitions and return values of different bus specific NM layers.
Figure 4.1 shows a typical example of the AUTOSAR NM stack.
«module»
:ComM
«module»
:Nm
5.1.1 ComM, CanNm, J1939Nm, FrNm, UdpNm, generic bus specific NM layers
and CDD
The Generic Network Management Interface module (Nm) provides services to the
Communication Manager (ComM) and uses services of the bus specific Network Man-
agement modules:
[SWS_Nm_00247] d The code file structure shall not be defined within this specifica-
tion completely. At this point it shall be pointed out that the code-file structure shall
include the following files named:
6 Requirements traceability
The following tables references the requirements specified in [7] as well as [8] and links
to the fulfillment of these.
Requirement Description Satisfied by
[SRS_BSW_00003] All software modules [SWS_Nm_00044]
shall provide version
and identification
information
[SRS_BSW_00004] All Basic SW Modules [SWS_Nm_00999]
shall perform a
pre-processor check
of the versions of all
imported include files
[SRS_BSW_00005] Modules of the µC [SWS_Nm_00999]
Abstraction Layer
(MCAL) may not have
hard coded horizontal
interfaces
[SRS_BSW_00006] The source code of [SWS_Nm_00999]
software modules
above the µC
Abstraction Layer
(MCAL) shall not be
processor and
compiler dependent.
[SRS_BSW_00007] All Basic SW Modules [SWS_Nm_00999]
written in C language
shall conform to the
MISRA C 2012
Standard.
[SRS_BSW_00009] All Basic SW Modules [SWS_Nm_00999]
shall be documented
according to a
common standard.
[SRS_BSW_00010] The memory [SWS_Nm_00999]
consumption of all
Basic SW Modules
shall be documented
for a defined
configuration for all
supported platforms.
[SRS_BSW_00101] The Basic Software [SWS_Nm_00030] [SWS_Nm_00127]
Module shall be able [SWS_Nm_00128] [SWS_Nm_00129]
to initialize variables [SWS_Nm_00131] [SWS_Nm_00133]
and hardware in a [SWS_Nm_00135] [SWS_Nm_00137]
separate initialization [SWS_Nm_00139] [SWS_Nm_00141]
function [SWS_Nm_00143] [SWS_Nm_00145]
[SWS_Nm_00147] [SWS_Nm_00149]
[SWS_Nm_00151]
[SRS_BSW_00158] No description [SWS_Nm_00999]
7 Functional specification
The NM Interface functionality consists of two parts:
• The Base functionality necessary to run, together with the bus specific NM mod-
ules, AUTOSAR NM on an ECU.
• The NM Coordinator functionality used by gateway ECUs to synchronously shut
down one ore more busses.
Note: Consider that certain bus types have different nomenclature on the terms Net-
work, Channel, Cluster.
[SWS_Nm_00292] d If the NM Coordinator functionality is configured, the configuration
parameter NmCycletimeMainFunction shall be configured with the cycle time of the
rate at which two successive calls to the Nm’s main function (see [SWS_Nm_00118])
are made. c(SRS_BSW_00478)
Note: The NM Coordinator may use this to calculate the timeout status of internal
timers.
ditions and when these are met, it performs a coordinated shutdown of all the presently
awake buses in the coordination cluster.
Note: It is outside the scope of the Nm to provide synchronized wakeup for coordinated
busses. It is up to the application (-> vehicle mode management) to wake up the
required resp. all channels if one channel wake up occurs.
AUTOSAR ECU will always be the LIN bus master and can always solely decide when
the network shall go to sleep.
No
No
Start
Figure 7.1: Overview of the coordination algorithm with the coordinated shutdown as
part of it
Note: There is no limitation where the actions performed by the coordination al-
gorithm shall take place.
This can be done either by the Nm main function ( NmMainFunction ) or module
indication / callbacks.
[SWS_Nm_00171] d 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. c(SRS_Nm_00047,
SRS_Nm_02516)
Rationale: Evaluation of shutdown conditions can be also done in other API calls then
the main function. The evaluation can be segmented then to check only the specific
conditions affected by the API calls there, hence it is not necessary to re-evaluate all
conditions in every main processing period and every API call.
[SWS_Nm_00172] d 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. c(SRS_Nm_00044)
The exemplary topology shown in Figure 7.2 has the following coordination approach.
GW 1 have configured the channel onto Network 1 and Network 2 as actively coordi-
nating channels. Where GW 2 is configured with Network 2 connection as passively
coordinated channel, but with actively coordinated channel on Network 3. GW 3 than
needs to be configured on Network 3 as passively coordinated channel but as actively
coordinated channel for his connection to the Network 4.
[SWS_Nm_00280] d The functionality of coordinating nested sub busses shall
be available if the NmCoordinatorSyncSupport parameter is set to TRUE. c
(SRS_Nm_02535)
Note: All requirements within this chapter are valid “per Nm Coordination Clus-
ter” (see [SWS_Nm_00167]).
The NmActiveCoordinator parameter indicates, if an NM Coordinator behaves
on this channel in actively manner
( Actively coordinated channel ) [NmActiveCoordinator = TRUE]
or behave in a passively manner
( Passively coordinated channel ) [NmActiveCoordinator = FALSE].
This Use Case focuses on how to synchronize the point in time where the different
networks are released.
This results in the fastest possible total shutdown of all networks, but with the downside
that the networks will not enter ”bus-sleep mode“ at the same time.
Rationale: One example of this Use Case is when several CAN networks shall be kept
alive as long as any CAN-node is requesting one of the networks; but when all nodes
are ready to go to sleep it does not matter if ”bus-sleep mode“ is entered at the same
time for the different networks.
Since the Use Case does not consider any cyclic behavior of the networks,
the synchronization parameter NmSynchronizingNetwork shall be set to FALSE
for all networks and no bus specific NM shall be configured to invoke the
Nm_SynchronizationPoint callback.
To achieve the fastest possible shutdown, the shutdown timer parameter NmGlobal-
CoordinatorTime needs to be set to 0.0.
This Use Case is an extension of Use Case 1, but here consideration is taken to the
fact that for some networks the request to release the network will only be acted upon
at specific points in time. This Use Case will command a simultaneous shutdown like
in Use Case 1, but will wait until a point in time suitable for the synchronizing network.
Rationale: One example of this Use Case is when one FlexRay network and several
CAN networks where the time when all networks are active shall be maximized, but the
networks shall still be put to sleep as fast as possible.
Since this Use Case shall consider the cyclic behavior of a selected network, one
of the networks shall have its synchronization parameter NmSynchronizingNet-
work set to TRUE while the other networks shall have this parameter set to FALSE.
The synchronizing network’s bus specific NM shall also be configured to invoke the
Nm_SynchronizationPoint callback at suitable points in time where the shutdown
shall be initiated.
To achieve the fastest possible shutdown, the shutdown timer parameter NmGlobal-
CoordinatorTime needs to be set to 0.0.
This Use Case will focus on synchronizing the point in time where the different net-
works enters ”bus-sleep mode“. It will wait for indication from a synchronizing network,
and then delay the network releases of all networks based on timing values so that the
transition from ”network mode“ (or ”prepare bus-sleep mode“) into ”bus-sleep mode“ is
as synchronized as possible.
Rationale: One example of this Use Case is when one FlexRay network and several
CAN networks shall stop communicating at the same time.
Since this Use Case shall consider the cyclic behavior of a selected network, of the
networks - preferably the cyclic one - shall have its synchronization parameter NmSyn-
chronizingNetwork set to TRUE while the other networks shall have this parameter
set to FALSE. The synchronizing network’s bus specific NM shall also be configured
to invoke the Nm_SynchronizationPoint callback at suitable points in time where
the shutdown shall be initiated.
To calculate the shutdown timer TSHUTDOWN_CHANNEL of each network, specific
knowledge of each networks timing behavior must be obtained.
For all networks, TSHUTDOWN_CHANNEL must be calculated, this is the minimum
time it will take the network to enter ”bus-sleep mode“. For non-cyclic networks (such
as CAN), the time shall be measured from the point in time when the network is re-
leased until it enters ”bus-sleep mode“. For cyclic networks (such as FlexRay) the time
shall also include the full range from the synchronization indication made just before
the network is released. For Generic BusNms the time is given by the configuration
parameter NmGenericBusNmShutdownTime.
For the synchronizing network, TSYNCHRONIZATION_INDICATION must be deter-
mined. This is the time between any two consecutive calls made by that bus specific
NM to Nm_SynchronizationPoint.
The NmGlobalCoordinatorTime shall be the total time that is needed for the co-
ordination algorithm. This includes the shutdown time of nested sub-busses.
Start with setting NmGlobalCoordinatorTime to the same value as TSHUT-
DOWN_CHANNEL for the synchronizing network. If the TSHUTDOWN_CHANNEL
for any other network is greater than NmGlobalCoordinatorTime, extend NmGlob-
alCoordinatorTime with TSYNCHRONIZATION_INDICATION repeatedly until Nm-
GlobalCoordinatorTime is equal to, or larger than any TSHUTDOWN_CHANNEL.
The shutdown delay timer for each network shall be calculated as NmGlobalCoordi-
natorTime - TSHUTDOWN_CHANNEL for that network.
For the cyclic networks this parameter must then be increased slightly in order to make
sure that the network release will occur between to synchronization indications, slightly
after Nm_SynchronizationIndication (would) have been called. The amount of
time to extend the timer depends on the implementation and configuration of the bus
specific NM but should be far smaller than TSYNCHRONIZATION_INDICATION.
7.2.8.1 Examples
In the first case ( Figure 7.4), the synchronizing network holds the largest TSHUT-
DOWN_CHANNEL, which will therefore equal the NmGlobalCoordinatorTime. For
the synchronizing network, the shutdown delay timer will be NmGlobalCoordina-
torTime - TSHUTDOWN_CHANNEL, which is zero, but then a small amount of time
is added to make sure that the Nm will wait to release the network between the two
synchronization points.
For the Non-cyclic network, the shutdown delay timer will simply be NmGlobalCoor-
dinatorTime - TSHUTDOWN_CHANNEL.
In the second case ( Figure 7.5), the non-cyclic network takes very long time
to shut down and therefore holds the largest TSHUTDOWN_CHANNEL. The Nm-
GlobalCoordinatorTime has now been obtained by taking the synchroniz-
ing network’s (slightly shorter) TSHUTDOWN_CHANNEL adding TSYNCHRONIZA-
TION_INDICATION once to this value.
For the synchronizing network, the shutdown timer will be NmGlobalCoordinator-
Time - TSHUTDOWN_CHANNEL, with a small amount of time added to make sure
that the Nm will wait to release the network between the two synchronization points.
For the Non-cyclic network, the shutdown timer will simply be NmGlobalCoordina-
torTime - TSHUTDOWN_CHANNEL.
Depending on the configuration, ComM can start multiple networks based on the indi-
cation from one network. It is recommended to configure the ComM to automatically
start all network of a NM Coordination Cluster if one of the networks indicates
network start, but this is not always necessary. Since the wakeup of network is outside
the scope of Nm, this is independent of if the NM Coordination functionality is used or
not.
the network before all networks are released, race conditions can occur in the coor-
dination algorithm. This can happen in four ways:
1. A node on a network that has not yet been released and is still in ’network mode’
starts requesting the network again. This will be detected by the bus specific NM
which will inform Nm by calling Nm_RemoteSleepCancellation.
2. A node on a network that has already been released and has indicated ”prepare
bus-sleep mode“ but not ”bus-sleep mode“ starts requesting the network again. This
will be detected by the bus specific NM that will automatically change state to
”network mode“ and inform Nm by calling Nm_NetworkMode.
3. The ComM requests the network on any of the networks in the NM Coordination
Cluster.
4. The coordinator which actively coordinates this network sends Nm message
with cleared Ready-Sleep Bit. This will be detected by the Bus spec NM
(only on passively coordinated channels) and forwarded to the NM by calling
Nm_CoordReadyToSleepCancellation.
The generic approach is to abort the shutdown and start requesting the networks again.
However, networks that have already gone into ”bus-sleep mode“ shall not be automat-
ically woken up; this must be requested explicitly by ComM.
[SWS_Nm_00181] d 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_NetworkRequestor
Nm_PassiveStartUp.
c(SRS_Nm_02537)
Note: Nm_NetworkStartIndication is not a trigger to abort the coordinated
shutdown, as this is handled by the upper layer.
[SWS_Nm_00182] d If the coordinated shutdown is aborted, NM Coordinator
shall call ComM_Nm_RestartIndication for all networks that already indicated ”bus
sleep“. c(SRS_Nm_02537)
Rationale: Since Nm cannot take decision to wake networks on its own, this must be
decided by ComM just as in the (external) wakeup case.
[SWS_Nm_00183] d If the coordinated shutdown is aborted, NM Coordinator
shall in case BusNmType is not set NM_BUSNM_LOCALNM request the network from the
<busNm’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(). c(SRS_Nm_02537)
The Nm only acts as a forwarding layer between the ComM and the bus specific NM
for the basic functionality.
All API calls made from the upper layer shall be forwarded to the corresponding API
call of the lower layer. All callbacks of Nm invoked by the lower layer shall be forwarded
to the corresponding callback of the upper layer.
The Basic functionality provides the following API calls to the ComM:
• Nm_NetworkRequest - [SWS_Nm_00032]
• Nm_NetworkRelease - [SWS_Nm_00046]
• Nm_PassiveStartUp - [SWS_Nm_00031]
Note: This implies that the bus specific NM provides the correspond-
ing functions <BusNm>_NetworkRequest, <BusNm>_NetworkRelease and
<BusNm>_PassiveStartUp.
The Basic functionality forwards the following API callbacks to the ComM:
• Nm_NetworkStartIndication - [SWS_Nm_00154]
• Nm_NetworkMode - [SWS_Nm_00156]
• Nm_BusSleepMode - [SWS_Nm_00162]
• Nm_PrepareBusSleepMode - [SWS_Nm_00159]
Note: This implies that the ComM provides the corresponding callback
functions ComM_Nm_NetworkStartIndication, ComM_Nm_NetworkMode,
ComM_Nm_BusSleepMode and ComM_Nm_PrepareBusSleepMode.
The Nm provides a number of API calls to the upper layers that are not used by ComM.
These are provided for OEM specific extensions of the NM stack and are not required
by any AUTOSAR module. They shall be forwarded to the corresponding API calls
provided by the bus specific NMs.
The Basic functionality provides the following API calls to any OEM extension of an
upper layer:
• Nm_DisableCommunication - [SWS_Nm_00033]
• Nm_EnableCommunication - [SWS_Nm_00034]
• Nm_SetUserData - [SWS_Nm_00035]
• Nm_GetUserData - [SWS_Nm_00036]
• Nm_GetPduData - [SWS_Nm_00037]
• Nm_RepeatMessageRequest - [SWS_Nm_00038]
• Nm_GetNodeIdentifier - [SWS_Nm_00039]
• Nm_GetLocalNodeIdentifier - [SWS_Nm_00040]
• Nm_CheckRemoteSleepIndication - [SWS_Nm_00042]
• Nm_GetState - [SWS_Nm_00043]
Note: This implies that the bus specific NM optionally provides the corresponding
functions.
The coordination algorithm makes use of the following interfaces of the bus
specific NM:
• <BusNm>_NetworkRequest - [SWS_Nm_00119]
• <BusNm>_NetworkRelease - [SWS_Nm_00119]
• <BusNm>_RequestBusSynchronization - [SWS_Nm_00119]
• <BusNm>_CheckRemoteSleepIndication - [SWS_Nm_00119]
Note: All NM networks configured to be part of a coordinated cluster of the NM
coordinator functionality must have the corresponding Bus NM configured to be able to
actively send out NM messages (e.g. CANNM_PASSIVE_MODE_ENABLED = false).
As a result of this configuration restriction, all BusNm used by the coordinator func-
tionality of the Nm module must provide the API <BusNm>_NetworkRequest.
Note: Any configuration where a network is part of a coordinated cluster of networks
where the corresponding BusNm is configured as passive is invalid.
Note: The <BusNm>_RequestBusSynchronization is called by Nm immediately
before <BusNm>_NetworkRelease in order to allow non-synchronous networks to
synchronize before the network is released. For some networks, this call has no
meaning. The bus specific NM shall still provide this interface in order to support
the generality of the NM Coordinator functionality, but can choose to provide an empty
implementation.
Rationale: The <BusNm>_CheckRemoteSleepIndication is never explicitly men-
tioned in the coordination algorithm. Its use is dependent on the implementa-
tion.
The coordination algorithm requires that the following callbacks of the Nm can
be invoked by the bus specific NM:
• Nm_NetworkStartIndication - [SWS_Nm_00154]
• Nm_NetworkMode - [SWS_Nm_00156]
• Nm_BusSleepMode - [SWS_Nm_00162]
• Nm_PrepareBusSleepMode - [SWS_Nm_00159]
• Nm_SynchronizeMode - [SWS_Nm_91002]
• Nm_RemoteSleepIndication - [SWS_Nm_00192]
• Nm_RemoteSleepCancellation - [SWS_Nm_00193]
• Nm_SynchronizationPoint - [SWS_Nm_00194]
Note: The Nm_NetworkStartIndication, Nm_NetworkMode,
Nm_BusSleepMode and Nm_PrepareBusSleepMode are used by the coor-
dination algorithm to keep track of the status of the different networks and to
handle aborted shutdown (see Chapter 7.3.3).
Note: The Nm_RemoteSleepIndication and Nm_RemoteSleepCancellation
are used by the coordination algorithm to determine when all conditions for
initiating the coordinated shutdown are met. The indication will be called by the
bus specific NM when it detects that all other nodes on the network (except for itself)
is ready to go to ”bus-sleep mode“. Some implementations will also make use of the
API call <BusNm>_CheckRemoteSleepIndication.
Note: A bus specific NM which is included in a coordination cluster must monitor its
bus to identify when all other nodes on the network is ready to go to sleep. When this
occurs, the bus specific NM shall call the callback Nm_RemoteSleepIndication of
Nm. (See [SWS_Nm_00192]).
Note: After a bus specific NM which is included in a coordination cluster has
signaled to Nm that all other nodes on the network is ready to go to sleep (See
[SWS_Nm_00192]), it must continue monitoring its bus to identify if any node
starts requesting the network again, implying that the bus is no longer ready to
go to sleep. When this occurs, the bus specific NM shall call the callback
Nm_RemoteSleepCancellation of Nm. (See [SWS_Nm_00193]).
Note: The Remote Sleep Indication and Cancellation functionality is further specified
in the respective bus specific NM.
Rationale: The Nm_SynchronizationPoint shall be called by the bus specific
NM in order to inform the coordination algorithm of a suitable point in time to
initiate the coordinated shutdown. For cyclic networks this is typically at cycle
boundaries. For non-cyclic networks this must be defined by other means. Each NM
Coordination Cluster can be configured to make use of synchronization indications or
not (See [SWS_Nm_00172]), and if they are used, the coordination algorithm filters
indications and only acts on indications from networks that are configured as synchro-
nizing networks.
Note: Please note for implementation of <bus>Nm: Cyclic networks invoke the
Nm_SynchronizationPoint repeatedly when no other nodes request the network.
The invocation is typically made at boundaries in the bus specific NM protocol when
changes in the NM voting will occur.
The Nm’s configuration contains parameters that regulate support of optional features
found in the bus specific NMs. Since Nm is only a pass-through interface layer re-
garding features that are not used by the NM Coordinator functionality, enabling these
in Nm’s configuration will in many cases only enable the pass-through of the controlling
API functions and the callback indications from the bus specific layers.
Many of the parameters defined for NM are used only as a source for global configu-
ration of all bus specific NM modules. Corresponding parameters of the bus specific
NMs are derived from these parameters.
7.5 NM_BUSNM_LOCALNM
[SWS_Nm_00483] d 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. c()
7.6.1 Nm_CarWakeUpIndication
7.6.2 Nm_StateChangeNotification
[SWS_Nm_00232] d The Nm shall be able to detect the following errors and excep-
tions depending on its configuration according to Table 7.2. c(SRS_BSW_00327,
SRS_BSW_00337, SRS_BSW_00385, SRS_BSW_00386)
8 API specification
c(SRS_BSW_00301)
8.2.1 Nm_ModeType
[SWS_Nm_00274] d
Name: Nm_ModeType
Type: Enumeration
Range: NM_MODE_BUS_SLEEP – Bus-Sleep Mode
NM_MODE_PREPARE_BUS_SLEEP – Prepare-Bus Sleep Mode
NM_MODE_SYNCHRONIZE – Synchronize Mode
NM_MODE_NETWORK – Network Mode
Description: Operational modes of the network management.
Available NmStack_types.h
via:
c(SRS_Nm_00044)
8.2.2 Nm_StateType
[SWS_Nm_00275] d
Name: Nm_StateType
Type: Enumeration
Range: NM_STATE_UNINIT 0x00 Uninitialized State
NM_STATE_BUS_SLEEP 0x01 Bus-Sleep State
c(SRS_Nm_00050)
8.2.3 Nm_BusNmType
[SWS_Nm_00276] d
Name: Nm_BusNmType
Type: Enumeration
Range: NM_BUSNM_CANNM – CAN NM type
NM_BUSNM_FRNM – FR NM type
NM_BUSNM_UDPNM – UDP NM type
NM_BUSNM_GENERICNM – Generic NM type
NM_BUSNM_UNDEF – NM type undefined; it shall be
defined as FFh
NM_BUSNM_J1939NM – SAE J1939 NM type (address
claiming)
NM_BUSNM_LOCALNM – Local NM Type
Description: BusNm Type
Available NmStack_types.h
via:
8.2.4 Nm_ConfigType
[SWS_Nm_00282] d
Name: Nm_ConfigType
Type: Structure
Range: implementation –
specific
Description: Configuration data structure of the Nm module.
Available Nm.h
via:
c(SRS_BSW_00414)
8.3.1.1 Nm_Init
[SWS_Nm_00030] d
8.3.1.2 Nm_PassiveStartUp
[SWS_Nm_00031] d
8.3.1.3 Nm_NetworkRequest
[SWS_Nm_00032] d
8.3.1.4 Nm_NetworkRelease
[SWS_Nm_00046] d
c(SRS_Nm_00048, SRS_Nm_00051)
[SWS_Nm_00131] d Caveats of Nm_NetworkRelease: The <BusNm> and the Nm
itself are initialized correctly. c(SRS_BSW_00101, SRS_BSW_00416)
[SWS_Nm_00132] d 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. c(SRS_Nm_00150)
The following services are provided by NM Interface to allow the Diagnostic Communi-
cation Manager (DCM) to control the transmission of NM Messages.
Note: To run the coordination algorithm correctly, it has to be ensured
that NM PDU transmission ability is enabled before the ECU is shut down. If
<BusNm>_NetworkRelease is called while NM PDU transmission ability is disabled,
the ECU will shut down after NM PDU transmission ability has been re-enabled again.
Therefore the ECU can also shut down in case of race conditions (e.g. diagnostic ses-
sion left shortly before enabling communication) or a wrong usage of communication
control.
8.3.2.1 Nm_DisableCommunication
[SWS_Nm_00033] d
c(SRS_Nm_02513, SRS_Nm_02512)
[SWS_Nm_00133] d Caveats of Nm_DisableCommunication: The <BusNm> and
the Nm itself are initialized correctly. c(SRS_BSW_00101, SRS_BSW_00416)
[SWS_Nm_00134] d Configuration of Nm_DisableCommunication: This function is
only available if NmComControlEnabled is set to TRUE. c(SRS_Nm_00150)
[SWS_Nm_00286] d 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. c(SRS_Nm_00150)
8.3.2.2 Nm_EnableCommunication
[SWS_Nm_00034] d
c(SRS_Nm_00047, SRS_Nm_02512)
[SWS_Nm_00135] d Caveats of Nm_EnableCommunication: The <BusNm> and
the Nm itself are initialized correctly. c(SRS_BSW_00101, SRS_BSW_00416)
[SWS_Nm_00136] d Configuration of Nm_EnableCommunication: This function is
only available if NmComControlEnabled is set to TRUE. c(SRS_Nm_00150)
[SWS_Nm_00287] d 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. c(SRS_Nm_00150)
The following services are provided by NM Interface for OEM specific extensions of the
NM stack and are not required by any AUTOSAR module.
8.3.3.1 Nm_SetUserData
[SWS_Nm_00035] d
c(SRS_Nm_02503)
[SWS_Nm_00137] d Caveats of Nm_SetUserData: The <BusNm> and the Nm itself
are initialized correctly. c(SRS_BSW_00101, SRS_BSW_00416)
[SWS_Nm_00138] d Configuration of Nm_SetUserData: This function is only avail-
able if NmUserDataEnabled is set to TRUE. c(SRS_Nm_00150)
[SWS_Nm_00288] d 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. c(SRS_Nm_00150)
[SWS_Nm_00241] d Configuration of Nm_SetUserData: If NmComUserDataSup-
port is TRUE the API Nm_SetUserData shall not be available. c(SRS_Nm_00150)
8.3.3.2 Nm_GetUserData
[SWS_Nm_00036] d
c(SRS_Nm_02504)
[SWS_Nm_00139] d Caveats of Nm_GetUserData: The <BusNm> and the Nm itself
are initialized correctly. c(SRS_BSW_00101, SRS_BSW_00416)
8.3.3.3 Nm_GetPduData
[SWS_Nm_00037] d
c(SRS_Nm_02506)
[SWS_Nm_00141] d Caveats of Nm_GetPduData: The <BusNm> and the Nm itself
are initialized correctly. c(SRS_BSW_00101, SRS_BSW_00416)
8.3.3.4 Nm_RepeatMessageRequest
[SWS_Nm_00038] d
c(SRS_Nm_00153)
[SWS_Nm_00143] d Caveats of Nm_RepeatMessageRequest: The <BusNm> and
the Nm itself are initialized correctly. c(SRS_BSW_00101, SRS_BSW_00416)
[SWS_Nm_00289] d 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. c(SRS_Nm_00150)
8.3.3.5 Nm_GetNodeIdentifier
[SWS_Nm_00039] d
c(SRS_Nm_02505)
[SWS_Nm_00145] d Caveats of Nm_GetNodeIdentifier: The <BusNm> and the
Nm itself are initialized correctly. c(SRS_BSW_00101, SRS_BSW_00416)
8.3.3.6 Nm_GetLocalNodeIdentifier
[SWS_Nm_00040] d
c(SRS_Nm_02508)
[SWS_Nm_00147] d Caveats of Nm_GetLoclaNodeIdentifier: The <BusNm>
and the Nm itself are initialized correctly. c(SRS_BSW_00101, SRS_BSW_00416)
8.3.3.7 Nm_CheckRemoteSleepIndication
[SWS_Nm_00042] d
c(SRS_Nm_02513)
[SWS_Nm_00149] d Caveats of Nm_CheckRemoteSleepIndication: The
<BusNm> and the Nm itself are initialized correctly. c(SRS_BSW_00101,
SRS_BSW_00416)
[SWS_Nm_00290] d 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. c(SRS_Nm_00150)
[SWS_Nm_00150] d Configuration of Nm_CheckRemoteSleepIndication: This
function is only available if NmRemoteSleepIndEnabled is set to TRUE. c
(SRS_Nm_00150)
8.3.3.8 Nm_GetState
[SWS_Nm_00043] d
c(SRS_Nm_00050)
[SWS_Nm_00151] d Caveats of Nm_GetState: The <BusNm> and the Nm itself are
initialized correctly. c(SRS_BSW_00101, SRS_BSW_00416)
8.3.3.9 Nm_GetVersionInfo
[SWS_Nm_00044] d
8.4.1.1 Nm_NetworkStartIndication
[SWS_Nm_00154] d
c(SRS_BSW_00359, SRS_Nm_02513)
[SWS_Nm_00155] d The indication through callback function
Nm_NetworkStartIndication: shall be forwarded to ComM by calling the
ComM_Nm_NetworkStartIndication. c(SRS_Nm_02513)
8.4.1.2 Nm_NetworkMode
[SWS_Nm_00156] d
c(SRS_BSW_00359, SRS_Nm_00051)
[SWS_Nm_00158] d The indication through callback function Nm_NetworkMode: shall
be forwarded to ComM by calling the ComM_Nm_NetworkMode. c(SRS_Nm_00051)
8.4.1.3 Nm_BusSleepMode
[SWS_Nm_00162] d
Sync/Async: Asynchronous
Reentrancy: Reentrant
Parameters (in): nmNetworkHandle Identification of the NM-channel
Parameters (inout): None
Parameters (out): None
Return value: None
Description: Notification that the network management has entered Bus-Sleep Mode.
Available via: Nm.h
c(SRS_BSW_00359, SRS_Nm_00051)
[SWS_Nm_00163] d The indication through callback function Nm_BusSleepMode:
shall be forwarded to ComM by calling the ComM_Nm_BusSleepMode. c
(SRS_Nm_00051)
8.4.1.4 Nm_PrepareBusSleepMode
[SWS_Nm_00159] d
c(SRS_BSW_00359, SRS_Nm_00051)
[SWS_Nm_00161] d The indication through callback function
Nm_PrepareBusSleepMode: shall be forwarded to ComM by calling
ComM_Nm_PrepareBusSleepMode. c(SRS_Nm_00051)
8.4.1.5 NM_SynchronizeMode
[SWS_Nm_91002] d
c()
8.4.1.6 Nm_RemoteSleepIndication
[SWS_Nm_00192] d
c(SRS_BSW_00359, SRS_Nm_00052)
[SWS_Nm_00277] d Configuration of Nm_RemoteSleepIndication: This function
is only available if NmRemoteSleepIndEnabled is set to TRUE. c(SRS_Nm_00150)
The notification that all other nodes on the network are ready to enter Bus-Sleep Mode
is only needed for internal purposes of the NM Coordinator.
Note: When NM Coordinator functionality is disabled Nm_RemoteSleepIndication
can be an empty function.
8.4.1.7 Nm_RemoteSleepCancellation
[SWS_Nm_00193] d
c(SRS_BSW_00359, SRS_Nm_02509)
[SWS_Nm_00278] d Configuration of Nm_RemoteSleepCancellation: This
function is only available if NmRemoteSleepIndEnabled is set to TRUE. c
(SRS_Nm_00150)
The notification that not all other nodes on the network are longer ready to enter Bus-
Sleep Mode is only needed for internal purposes of the NM Coordinator.
Note: When NM Coordinator functionality is disabled
Nm_RemoteSleepCancellation can be an empty function.
8.4.1.8 Nm_SynchronizationPoint
[SWS_Nm_00194] d
Sync/Async: Asynchronous
Reentrancy: Reentrant
Parameters (in): nmNetworkHandle Identification of the NM-channel
Parameters (inout): None
Parameters (out): None
Return value: None
Description: Notification to the NM Coordinator functionality that this is a suitable point
in time to initiate the coordinated shutdown on.
Available via: Nm.h
c(SRS_BSW_00359, SRS_Nm_02516)
The notification that this is a suitable point in time to initiate the coordinated shut-
down is only needed for internal purposes of the NM Coordinator.
8.4.1.9 Nm_CoordReadyToSleepIndication
[SWS_Nm_00254] d
c(SRS_BSW_00359, SRS_Nm_02535)
[SWS_Nm_00255] d Configuration of Nm_CoordReadyToSleepIndication: Op-
tional
If NmCoordinatorSyncSupport is set to TRUE , the Nm shall provide the API
Nm_CoordReadyToSleepIndication. c(SRS_Nm_00150)
8.4.1.10 Nm_CoordReadyToSleepCancellation
[SWS_Nm_00272] d
c(SRS_BSW_00359, SRS_Nm_02535)
[SWS_Nm_00273] d Configuration of Nm_CoordReadyToSleepCancellation:
Optional
If NmCoordinatorSyncSupport is set to TRUE , the Nm shall provide the API
Nm_CoordReadyToSleepCancellation. c(SRS_Nm_00150)
The following call-back notifications are provided by NM Interface for OEM specific
extensions of bus specific NM components and are not required by any AUTOSAR
module. In the context of the Basic functionality and NM Coordinator functionality they
have no specific usage.
8.4.2.1 Nm_PduRxIndication
[SWS_Nm_00112] d
c(SRS_BSW_00359)
The notification that an NM message has been received is only needed for OEM
specific extensions of the NM Coordinator.
8.4.2.2 Nm_StateChangeNotification
[SWS_Nm_00114] d
c(SRS_BSW_00359, SRS_Nm_00050)
The notification that the state of the bus-specific NM has changed is only needed for
OEM specific extensions of the NM Coordinator.
8.4.2.3 Nm_RepeatMessageIndication
[SWS_Nm_00230] d
c(SRS_BSW_00359, SRS_Nm_00153)
The notification that an NM message with the set Repeat Message Bit has been re-
ceived is only needed for OEM specific extensions of the NM Coordinator.
8.4.2.4 Nm_TxTimeoutException
[SWS_Nm_00234] d
c(SRS_BSW_00359)
The notification that an attempt to send an NM message failed is only needed for OEM
specific extensions of the Nm.
8.4.2.5 Nm_CarWakeUpIndication
[SWS_Nm_00250] d
c(SRS_BSW_00359, SRS_Nm_02503)
[SWS_Nm_00251] d Configuration of Nm_CarWakeUpIndication: Optional
If NmCarWakeUpRxEnabled is TRUE, The Nm shall provide the API
Nm_CarWakeUpIndication. c(SRS_Nm_00150)
[SWS_Nm_00121] d In case the main function is called before the Nm has been
initialized, the main function shall immediately return without yielding an error. c
(SRS_BSW_00450)
Rationale: In case the NM Coordinator functionality is not used and/or disabled, calling
the main function shall not yield in an error, but nothing should be performed.
8.5.1 Nm_MainFunction
[SWS_Nm_00118] d
c(SRS_BSW_00424, SRS_BSW_00425)
[SWS_Nm_00279] d If NmCoordinatorSupportEnabled is set to TRUE, the
Nm_MainFunction API shall be available. c(SRS_Nm_00150)
c(SRS_Nm_02515, SRS_Nm_02536)
This chapter defines all interfaces that are required to fulfill an optional functionality of
the module.
[SWS_Nm_00166] d
Caveats:
UdpNm is initialized correctly.
c(SRS_Nm_00150, SRS_Nm_02515)
In this chapter all interfaces are listed where the target function could be configured.
The target function is usually a call-back function. The names of these kind of inter-
faces are not fixed because they are configurable.
8.6.3.1 NmCarWakeUpCallout
[SWS_Nm_00291] d
c(SRS_Nm_02504)
9 Sequence diagrams
Nm_NetworkRelease(Std_ReturnType,
NetworkHandleType)
Nm_RemoteSleepIndication
(NetworkHandleType)
Nm_RemoteSleepIndication
(NetworkHandleType)
Repetition cycle
boundary()
Nm_SynchronizationPoint
(NetworkHandleType)
Start shutdown
timers()
FrNm_RequestBusSynchronization(Std_ReturnType,
NetworkHandleType)
FrNm_NetworkRelease(Std_ReturnType,
NetworkHandleType)
Repetition cycle
boundary()
Network Mode
Ready Sleep
Last repetition
cycle finished()
Nm_BusSleepMode(NetworkHandleType)
[CAN]
Shutdown timer expires
()
CanNm_RequestBusSynchronization(Std_ReturnType,
NetworkHandleType)
CanNm_NetworkRelease(Std_ReturnType,
NetworkHandleType)
Network Mode
Ready Sleep
Timer expires
()
Nm_PrepareBusSleepMode(NetworkHandleType)
Nm_BusSleepMode(NetworkHandleType)
ComM_Nm_BusSleepMode
(NetworkHandleType) Bus-Sleep Mode
CanSM_RequestComMode(Std_ReturnType,
NetworkHandleType, ComM_ModeType)
10 Configuration specification
The following chapter contains tables of all configuration parameters and switches
used to determine the functional units of the Generic Network Management Interface.
The default values of configuration parameters are denoted as bold.
In general, this chapter defines configuration parameters and their clustering into con-
tainers. section 10.1 describes fundamentals. section 10.2, section 10.3 and sec-
tion 10.4 specifies the structure (containers) and the parameters of the Nm. The sec-
tion 10.5 specifies published information of the Nm.
10.2.1 Nm
10.3.1 NmGlobalConfig
Included Containers
Container Name Multiplicity Scope / Dependency
NmGlobalConstants 1
NmGlobalFeatures 1
NmGlobalProperties 1
10.3.2 NmGlobalConstants
Default Value
Post-Build Variant false
Value
Value Configuration Pre-compile time X All Variants
Class
Link time –
Post-build time –
Scope / Dependency scope: local
No Included Containers
10.3.3 NmGlobalProperties
Multiplicity 1
Type EcucBooleanParamDef
Default Value false
Post-Build Variant false
Value
Value Configuration Pre-compile time X All Variants
Class
Link time –
Post-build time –
Scope / Dependency scope: local
No Included Containers
10.3.4 NmGlobalFeatures
Note that this feature should not be used if all NM channels have
Passive Mode enabled.
Multiplicity 1
Type EcucBooleanParamDef
Default Value
Post-Build Variant false
Value
Value Configuration Pre-compile time X All Variants
Class
Link time –
Post-build time –
Scope / Dependency scope: local
dependency: If NmCoordinatorSupportEnabled == TRUE then
NmRemoteSleepIndEnabled = TRUE
No Included Containers
10.4.1 NmChannelConfig
If this parameter is set to TRUE, the Nm shall assume that the channel
is always ready to go to sleep and that no calls to
Nm_RemoteSleepIndication or Nm_RemoteSleepCancellation will be
made from the <BusNm> representing this channel.
If this parameter is set to FALSE, the Nm shall not assume that the
network is ready to sleep until a call has been made to
Nm_RemoteSleepCancellation.
Multiplicity 1
Type EcucBooleanParamDef
Default Value
Post-Build Variant false
Value
Value Configuration Pre-compile time X VARIANT-PRE-COMPILE
Class
Link time X VARIANT-LINK-TIME
Post-build time –
Scope / Dependency scope: local
dependency: If the parameter NmCoordClusterIndex is not defined,
this parameter is not valid.
Included Containers
Container Name Multiplicity Scope / Dependency
NmBusType 1
10.4.2 NmBusType
Container Choices
Container Name Multiplicity Scope / Dependency
NmGenericBusNmConfig 0..1
NmStandardBusNm 0..1
Config
10.4.3 NmGenericBusNmConfig
No Included Containers
10.4.4 NmStandardBusNmConfig
No Included Containers