0% found this document useful (0 votes)
593 views293 pages

Autosar Sws Tcpip

Uploaded by

Stefan Ruscanu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
593 views293 pages

Autosar Sws Tcpip

Uploaded by

Stefan Ruscanu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 293

Specification of TCP/IP Stack

AUTOSAR CP R20-11

Document Title Specification of TCP/IP Stack


Document Owner AUTOSAR
Document Responsibility AUTOSAR
Document Identification No 617

Document Status published


Part of AUTOSAR Standard Classic Platform
Part of Standard Release R20-11

Document Change History


Date Release Changed by Change Description
2020-11-30 R20-11 AUTOSAR  Introduction of IdsM (DRAFT)
Release  Minor corrections and clarifications
Management  Editorial changes
2019-11-28 R19-11 AUTOSAR  Introduction of IPsec
Release  Minor corrections and clarifications
Management  Changed Document Status from
Final to published
2018-10-31 4.4.0 AUTOSAR  Introduction of Transport Layer
Release Security - TLS (DRAFT)
Management  ARP timing improvements
 minor corrections / clarifications /
editorial changes
2017-12-08 4.3.1 AUTOSAR  Clarifications and corrections of
Release requirements
Management  Editorial changes
2016-11-30 4.3.0 AUTOSAR  Improvements for robustness
Release  Introduction of diagnostic features
Management  Clarifications and corrections of
requirements
 Editorial changes
2015-07-31 4.2.2 AUTOSAR  Support for transmission of
Release fragmented IPv4/IPv6 frames
Management  Clarifications and corrections of
requirements
 Editorial changes

1 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Document Change History


Date Release Changed by Change Description
2014-10-31 4.2.1 AUTOSAR  Introduction of IPv6 for in-vehicle
Release communication
Management  Support for Switch
Control/Configuration, Semi-Static
Auto-Configuration
 TcpIp generic upper layer support
(CDD)
 Clarifications and corrections of
requirements and sequence charts
2014-03-31 4.1.3 AUTOSAR  Clarifications and corrections of
Release requirements
Management  Editorial changes
2013-10-31 4.1.2 AUTOSAR  Added control functions for ARP
Release  Clarifications and corrections of
Management requirements
 Editorial changes
 Removed chapter(s) on change
documentation
2013-03-15 4.1.1 AUTOSAR  Initial Release
Administration

2 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

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
intellectual 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.

3 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Table of Contents

1 Introduction and functional overview ..................................................................... 8


2 Acronyms and abbreviations.................................................................................. 9
3 Related documentation ........................................................................................ 10
3.1 Input documents............................................................................................. 10
3.2 Related standards and norms ........................................................................ 10
4 Constraints and assumptions............................................................................... 15
4.1 Limitations ...................................................................................................... 15
4.2 Applicability to car domains ........................................................................... 15
5 Dependencies to other modules .......................................................................... 16
5.1 EthIf ................................................................................................................ 16
5.2 EthSM............................................................................................................. 16
5.3 Socket Adaptor............................................................................................... 16
5.4 KeyM .............................................................................................................. 16
5.5 CSM ............................................................................................................... 16
5.6 File structure .................................................................................................. 17
5.6.1 Code file structure ................................................................................... 17
5.7 Version check................................................................................................. 17
6 Requirements traceability .................................................................................... 18
7 Functional specification ........................................................................................ 21
7.1 System Scalability .......................................................................................... 21
7.1.1 Background & Rationale ......................................................................... 21
7.1.2 Requirements .......................................................................................... 22
7.2 Internet Protocol Version 4 ............................................................................ 23
7.2.1 Internet Protocol (IPv4) ........................................................................... 23
7.2.2 Address Resolution Protocol (ARP) ........................................................ 24
7.2.3 Dynamic Configuration of IPv4 Link-Local Addresses (Auto-IP) ............ 25
7.2.4 Internet Control Message Protocol (ICMPv4) ......................................... 25
7.3 Internet Protocol Version 6 ............................................................................ 26
7.3.1 Internet Protocol (IPv6) ........................................................................... 26
7.3.2 Internet Control Message Protocol (ICMPv6) ......................................... 27
7.3.3 Neighbor Discovery Protocol (NDP) ....................................................... 27
7.4 Internet Protocol Security (IPsec) .................................................................. 28
7.5 IP Based Protocols ........................................................................................ 29
7.5.1 Local Address Table................................................................................ 29
7.5.2 User Datagram Protocol (UDP) .............................................................. 30
7.5.3 Transmission Control Protocol (TCP) ..................................................... 30
7.5.4 Transport Layer Security (TLS) ............................................................... 31
7.5.5 Dynamic Host Configuration Protocol ..................................................... 39
7.6 Message Reception ....................................................................................... 41
7.7 Message Transmission .................................................................................. 44
7.8 TCP/IP Stack state handling .......................................................................... 47
7.9 Security Events .............................................................................................. 49
7.10 Error classification ...................................................................................... 50
4 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

7.10.1 Development Errors ............................................................................. 50


7.10.2 Runtime Errors ..................................................................................... 51
7.10.3 Transient Faults ................................................................................... 52
7.10.4 Production Errors ................................................................................. 52
7.10.5 Extended Production Errors................................................................. 52
7.11 Version checking ........................................................................................ 52
8 API specification ................................................................................................... 53
8.1 Imported types ............................................................................................... 53
8.2 Type definitions .............................................................................................. 53
8.3 Function definitions ........................................................................................ 63
8.3.1 General .................................................................................................... 63
8.3.2 Core Communication Control .................................................................. 65
8.3.3 Extended Communication Control and Information ................................ 71
8.3.4 Transmission ........................................................................................... 90
8.4 Call-back notifications .................................................................................... 93
8.4.1 TcpIp_RxIndication.................................................................................. 93
8.5 Scheduled functions ....................................................................................... 94
8.5.1 Terms and definitions .............................................................................. 94
8.5.2 TcpIp_MainFunction ................................................................................ 94
8.6 Expected Interfaces ....................................................................................... 95
8.6.1 Mandatory Interfaces............................................................................... 95
8.6.2 Optional Interfaces .................................................................................. 95
8.6.3 Configurable interfaces ........................................................................... 97
9 Sequence diagrams ........................................................................................... 111
9.1 TCP Connection Setup – Client ................................................................... 112
9.2 TCP Connection Setup – Server ................................................................. 113
9.3 Reception ..................................................................................................... 114
9.4 Transmission TCP........................................................................................ 115
9.5 Transmission UDP ....................................................................................... 117
9.6 Connection setup for a TLS server .............................................................. 118
9.7 TLS connection assignment to socket ......................................................... 119
10 Configuration specification ............................................................................. 120
10.1 How to read this chapter ........................................................................... 120
10.2 Containers and configuration parameters ................................................ 120
10.2.1 TcpIp .................................................................................................. 120
10.2.2 TcpIpGeneral ..................................................................................... 123
10.2.3 TcpIpIpV4General .............................................................................. 126
10.2.4 TcpIpIpV6General .............................................................................. 128
10.2.5 TcpIpSecurityEventRefs .................................................................... 131
10.2.6 TcpIpConfig ........................................................................................ 135
10.2.7 TcpIpCtrl ............................................................................................. 136
10.2.8 TcpIpIpVXCtrl ..................................................................................... 137
10.2.9 TcpIpIpV4Ctrl ..................................................................................... 138
10.2.10 TcpIpIpV4MtuConfig .......................................................................... 140
10.2.11 TcpIpIpV6Ctrl ..................................................................................... 141
10.2.12 TcpIpIpV6MtuConfig .......................................................................... 142
10.2.13 TcpIpDhcpServerConfig .................................................................... 144
10.2.14 TcpIpDhcpAddressAssignment ......................................................... 146
5 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.15 TcpIpDuplicateAddressDetectionConfig ............................................ 147


10.2.16 TcpIpIpConfig ..................................................................................... 148
10.2.17 TcpIpIpV4Config ................................................................................ 149
10.2.18 TcpIpArpConfig .................................................................................. 150
10.2.19 TcpIpAutoIpConfig ............................................................................. 152
10.2.20 TcpIpDhcpConfig ............................................................................... 153
10.2.21 TcpIpIcmpConfig ................................................................................ 154
10.2.22 TcpIpIcmpMsgHandler ....................................................................... 155
10.2.23 TcpIpIpFragmentationConfig ............................................................. 156
10.2.24 TcpIpIpV6Config ................................................................................ 158
10.2.25 TcpIpDhcpV6Config ........................................................................... 160
10.2.26 TcpIpIcmpV6Config ........................................................................... 163
10.2.27 TcpIpIcmpV6MsgHandler .................................................................. 165
10.2.28 TcpIpIpV6ConfigExtHeaderFilter ....................................................... 165
10.2.29 TcpIpIpV6FragmentationConfig ......................................................... 167
10.2.30 TcpIpNdpConfig ................................................................................. 171
10.2.31 TcpIpNdpArNudConfig ....................................................................... 174
10.2.32 TcpIpNdpPrefixRouterDiscoveryConfig ............................................. 178
10.2.33 TcpIpNdpPrefixList............................................................................. 182
10.2.34 TcpIpNdpPrefixListEntry .................................................................... 182
10.2.35 TcpIpNdpSlaacConfig ........................................................................ 184
10.2.36 TcpIpLocalAddr .................................................................................. 188
10.2.37 TcpIpAddrAssignment........................................................................ 189
10.2.38 TcpIpStaticIpAddressConfig .............................................................. 191
10.2.39 TcpIpNvmBlock .................................................................................. 193
10.2.40 TcpIpPhysAddrConfig ........................................................................ 193
10.2.41 TcpIpPhysAddrChgHandler ............................................................... 194
10.2.42 TcpIpSocketOwnerConfig .................................................................. 196
10.2.43 TcpIpSocketOwner ............................................................................ 196
10.2.44 TcpIpTcpConfig .................................................................................. 201
10.2.45 TcpIpTcpConfigOptionFilter ............................................................... 206
10.2.46 TcpIpUdpConfig ................................................................................. 207
10.2.47 TcpIpTlsConfig ................................................................................... 208
10.2.48 TcpIpTlsConnectionGroup ................................................................. 209
10.2.49 TcpIpTlsConnection ........................................................................... 211
10.2.50 TcpIpTlsCiphersuites ......................................................................... 215
10.2.51 TcpIpTlsCiphersuiteDefinition ............................................................ 217
10.2.52 TcpIpTlsCiphersuiteWorker ............................................................... 220
10.2.53 TcpIpTlsHandshake ........................................................................... 226
10.2.54 TcpIpTlsCertificateIdentity ................................................................. 231
10.2.55 TcpIpTlsPskIdentity............................................................................ 233
10.2.56 TcpIpIpSecConfigSet ......................................................................... 237
10.2.57 TcpIpEncryptionAlgorithm .................................................................. 241
10.2.58 TcpIpEncryptionTransformJobPair .................................................... 242
10.2.59 TcpIpIntegrityAlgorithm ...................................................................... 244
10.2.60 TcpIpIntegrityTransformJobPair ........................................................ 245
10.2.61 TcpIpSpdEntry ................................................................................... 248
10.2.62 IKE...................................................................................................... 253
10.2.63 IKEGeneral......................................................................................... 254
10.2.64 IKEMessageFormat ........................................................................... 256
6 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.65 IKEConnections ................................................................................. 261


10.2.66 IKEConnection ................................................................................... 265
10.2.67 IKESession......................................................................................... 270
10.2.68 IKEChildSaProposal .......................................................................... 271
10.2.69 IKEIkeSaProposal .............................................................................. 273
10.2.70 IKESignatureAuthenticationVariant ................................................... 275
10.2.71 IKETransforms ................................................................................... 278
10.2.72 IKEDhTransform ................................................................................ 280
10.2.73 IKEEncrTransform ............................................................................. 283
10.2.74 IKEIntegTransform ............................................................................. 285
10.2.75 IKEPrfTransform ................................................................................ 288
10.2.76 IKECertificates ................................................................................... 290
10.2.77 IKECertificate ..................................................................................... 292
10.3 Published Information ............................................................................... 293

7 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

1 Introduction and functional overview


The AUTOSAR TCP/IP module offers functionality to send and receive Internet
Protocol data.

The TCP/IP Stack (TCPIP) is located between the Socket Adaptor (SoAd) and the
Ethernet Interface (EthIf) modules.

Figure 1: Extended AUTOSAR Communication Stack.

8 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

2 Acronyms and abbreviations


Abbreviation / Description:
Acronym:
ARP Address Resolution Protocol
DAD Duplicate Address Detection
DEM Diagnostic Event Manager
DET Default Error Tracer
DHCP Dynamic Host Configuration Protocol
DHCPv4 Dynamic Host Configuration Protocol for Internet Protocol Version 4
DHCPv6 Dynamic Host Configuration Protocol for Internet Protocol Version 6
ECC Elliptic Curve Cryptography
ECU Electronic Control Unit
EthIf Ethernet Interface
EthSM Ethernet State Manager
HSM Hardware Security Module
HTTP HyperText Transfer Protocol
IANA Internet Assigned Numbers Authority
ICMP Internet Control Message Protocol
ICMPv4 Internet Control Message Protocol for Internet Protocol Version 4
ICMPv6 Internet Control Message Protocol for Internet Protocol Version 6
IETF Internet Engineering Task Force
IP Internet Protocol
IPsec Internet Protocol Security
IPv4 Internet Protocol version 4
IPv6 Internet Protocol version 6
MTU Maximum Transmission Unit
NDP Neighbor Discovery Protocol
PKI Public Key Infrastructure
PRF Pseudo Random Function
RNG Random Number Generator
RSA Rivest-Shamir-Adleman. A method using public and private key for data
encryption and decryption.
SNI Server Name Identification
SoAd Socket Adaptor
TCP Transmission Control Protocol
TCP/IP A family of communication protocols used in computer networks
TLS Transport Layer Security
TP Transport Protocol
UDP User Datagram Protocol

9 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

3 Related documentation

3.1 Input documents

[1] AUTOSAR Layered Software Architecture


AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf

[2] AUTOSAR Basis Software Mode Manager


AUTOSAR_SWS_BSWModeManager.pdf

[3] AUTOSAR Socket Adaptor


AUTOSAR_SWS_SocketAdaptor.pdf

[4] AUTOSAR SRS BSW General


AUTOSAR_SRS_BSWGeneral.pdf

[5] AUTOSAR SRS Ethernet


AUTOSAR_SRS_Ethernet.pdf

[6] AUTOSAR General Specification for Basic Software Modules


AUTOSAR_SWS_BSWGeneral.pdf

[7] Specification of ECU Configuration


AUTOSAR_TPS_ECUConfiguration.pdf

[8] List of Basic Software Modules


AUTOSAR_TR_BSWModuleList.pdf

[9] Specification of Crypto Service Manager


AUTOSAR_SWS_CryptoServiceManager.pdf

[10] Specification of Key Manager


AUTOSAR_SWS_KeyManager.pdf

[11] AUTOSAR RS IPsecProtocol


AUTOSAR_RS_IPsecProtocol.pdf

3.2 Related standards and norms

[12] IETF RFC 3927


http://tools.ietf.org/html/rfc3927

[13] IETF RFC 1122


http://tools.ietf.org/html/rfc1122

10 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[14] IETF RFC 826


http://tools.ietf.org/html/rfc826

[15] IETF RFC 894


http://tools.ietf.org/html/rfc894

[16] IETF RFC 791


http://tools.ietf.org/html/rfc791

[17] IETF RFC 815


http://tools.ietf.org/html/rfc815

[18] IETF RFC 4632


http://tools.ietf.org/html/rfc4632

[19] IETF RFC 1112


http://tools.ietf.org/html/rfc1112

[20] IETF RFC 792


http://tools.ietf.org/html/rfc792

[21] IETF RFC 1191


http://tools.ietf.org/html/rfc1191

[22] IETF RFC 2131


http://tools.ietf.org/html/rfc2131

[23] IETF RFC 768


http://tools.ietf.org/html/rfc768

[24] IETF RFC 793


http://tools.ietf.org/html/rfc793

[25] IETF RFC 5681


http://tools.ietf.org/html/rfc5681

[26] IETF RFC 8200


http://tools.ietf.org/html/rfc8200

[27] IETF RFC 4291


http://tools.ietf.org/html/rfc4291

[28] IETF RFC 2464


http://tools.ietf.org/html/rfc2464

[29] IETF RFC 6724


http://tools.ietf.org/html/rfc6724

[30] IETF RFC 5722


http://tools.ietf.org/html/rfc5722
11 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

[31] IETF RFC 5095


http://tools.ietf.org/html/rfc5095

[32] IETF RFC 4862


http://tools.ietf.org/html/rfc4862

[33] IETF RFC 1981


http://tools.ietf.org/html/rfc1981

[34] IETF RFC 4429


http://tools.ietf.org/html/rfc4429

[35] IETF RFC 4443


http://tools.ietf.org/html/rfc4443

[36] IETF RFC 4861


http://tools.ietf.org/html/rfc4861

[37] IETF RFC 3315


http://tools.ietf.org/html/rfc3315

[38] IETF RFC 4702


http://tools.ietf.org/html/rfc4702

[39] IETF RFC 4704


http://tools.ietf.org/html/rfc4704

[40] IETF RFC 6582


http://tools.ietf.org/html/rfc6582

[41] IETF RFC 2132


http://tools.ietf.org/html/rfc2132

[42] IETF RFC 5942


https://tools.ietf.org/html/rfc5942

[43] IETF RFC 6437


https://tools.ietf.org/html/rfc6437

[44] IETF RFC 2474


https://tools.ietf.org/html/rfc2474

[45] IETF RFC 5246


https://tools.ietf.org/html/rfc5246

[46] IETF RFC 4492


https://tools.ietf.org/html/rfc4492

[47] IETF RFC 7525


12 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

https://tools.ietf.org/html/rfc7525

[48] IETF RFC 4279


https://tools.ietf.org/html/rfc4279

[49] IETF RFC 7366


https://tools.ietf.org/html/rfc7366

[50] IETF RFC 8446


https://tools.ietf.org/html/rfc8446

[51] IETF RFC 8449


https://tools.ietf.org/html/rfc8449

[52] IANA DHCP Options


https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-
parameters.xhtml#options

[53] IANA DHCPv6 Options


https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-
parameters.xhtml#dhcpv6-parameters-2

[54] RfC 4301


https://tools.ietf.org/html/rfc4301

[55] RfC 4302


https://tools.ietf.org/html/rfc4302

[56] RfC 4303


https://tools.ietf.org/html/rfc4303

[57] RfC 7296


https://tools.ietf.org/html/rfc7296

[58] RfC 4304


https://tools.ietf.org/html/rfc4304

[59] RfC 8221


https://tools.ietf.org/html/rfc8221

[60] RfC 4478

[61] RfC 3706


https://tools.ietf.org/html/rfc3706

[62] RfC 7427


https://tools.ietf.org/html/rfc3706

[63] RfC 4543


https://tools.ietf.org/html/rfc3706
13 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

[64] RfC 4494


https://tools.ietf.org/html/rfc4494

[65] RfC 4106


https://tools.ietf.org/html/rfc4106

[66] RfC 4309


https://tools.ietf.org/html/rfc4309

[67] RfC 6379


https://tools.ietf.org/html/rfc6379

[68] RfC 8247


https://tools.ietf.org/html/rfc8247

[69] RfC 7383


https://tools.ietf.org/html/rfc7383

[70] ISO13400-2

14 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

4 Constraints and assumptions

4.1 Limitations
This document does not cover the assignment of UDP or TCP port numbers. There is
no reserved space within the IANA assigned number range. Each implementer is
responsible for managing the used port numbers.

This document does not cover the management of IP addresses. This might be done
dynamically, e.g. by using DHCP, or statically. It is the implementer’s responsibility to
prevent address conflicts and achieve compliance with IANA address assignments.

This specification does not prescribe a certain physical layer or data rate.

Although a CDD interface is specified, allowing additional upper layer modules, a fan-
out of one socket to multiple upper layer modules is not intended to be supported.

The AUTOSAR TLS implementation has the following limitations:


 A TLS implementation shall not support data compression or decompression.
 Session renegotiation shall not be supported.
 No support for secure connection over UDP (e.g. for DTLS)
 No support of FQDN
 No client Hello padding extension IETF RFC7685
 No session hash and extended master secret IETF RFC 7627
 No support for TLS versions lower than 1.2.
 No support for dynamic “downgrading” of a TCP connection with an
established TLS connection to a plain TCP connection (without TLS)
 Static TLS connection assignment is bound to the port configuration of the
server. Thus, using different TLS settings for different connections (possibly
originating from different clients) to the same server port is not possible.

The AUTOSAR IPsec implementation has the following limitations:


 IPsec in "tunnel mode" is not supported right now. Transport mode only.
 IPv6 is not supported
 Multicast is not supported

4.2 Applicability to car domains


No restrictions.

15 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

5 Dependencies to other modules

5.1 EthIf
The Ethernet Interface is the lower layer module of the TcpIp module.

5.2 EthSM
The Ethernet State Manager controls the communication mode of the TcpIp module
by requesting communication modes from the TcpIp module. TcpIp notifies the
EthSM about communication mode changes.

5.3 Socket Adaptor


The Socket Adaptor is the upper layer module of the TcpIp module.

5.4 KeyM
The Key Manager module provides operations for certificate handling for the TLS and
IPsec sub module.

5.5 CSM
The crypto service manager allows to perform crypto job and key operations used by
the TLS and IPsec sub module.

16 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

5.6 File structure

5.6.1 Code file structure

For details refer to the chapter 5.1.6 “Code file structure” in SWS_BSWGeneral.

5.7 Version check


For details refer to the chapter 5.1.8 “Version Check” in SWS_BSWGeneral.

17 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

6 Requirements traceability

Requirement Description Satisfied by


RS_Ids_00810 Basic SW security events SWS_TCPIP_00361
RS_IPSEC_00004 The Internet Key Exchange SWS_TCPIP_00353
(IKEv2) Protocol shall be
supported according to
IETF RFC 7296
RS_IPSEC_00010 IKEv2 shall support SWS_TCPIP_00355
periodic reauthentication
and rekeying
RS_IPSEC_00011 IKEv2 shall support a SWS_TCPIP_00355
seamless handover of
exchanged keys
RS_IPSEC_00013 IKEv2 shall support dead SWS_TCPIP_00355
peer detection
RS_IPSEC_00014 IKEv2 shall support SWS_TCPIP_00356
authentication based on
X.509v3 certificates with
digital signatures
RS_IPSEC_00021 All algorithms which are SWS_TCPIP_00353
classified as "MUST" in
IETF RFC 8247 shall be
supported by IKEv2
RS_IPSEC_00022 IPsec's Security Policy SWS_TCPIP_00357
Database (SPD) shall be
configurable for IPs, IP
ranges, protocols, ports
and port ranges
RS_IPSEC_00023 IPsec's Security Policy SWS_TCPIP_00357
Database (SPD) default
behavior shall be BYPASS
RS_IPSEC_00025 IPsec's Peer Authorization SWS_TCPIP_00356
Database (PAD) shall be
configurable for use with
X.509v3
RS_IPSEC_00027 It shall be possible to SWS_TCPIP_00358
define the priority order of
the algorithms used by
IKEv2 during the IKE_INIT
negotiations
SRS_BSW_00323 All AUTOSAR Basic SWS_TCPIP_00147
Software Modules shall
check passed API
parameters for validity
SRS_BSW_00452 Classification of runtime SWS_TCPIP_00282, SWS_TCPIP_00283
errors
SRS_Eth_00016 ICMPv4 shall be SWS_TCPIP_00277, SWS_TCPIP_00297
implemented according to
IETF RFC 792
18 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

SRS_Eth_00019 TCP and UDP related SWS_TCPIP_00279, SWS_TCPIP_00280


requirement specified in
IETF RFC 1122 shall be
implemented
SRS_Eth_00045 TCPIP automatic IP SWS_TCPIP_00254
address assignment
SRS_Eth_00065 An API shall be available to SWS_TCPIP_00020, SWS_TCPIP_00190,
fill DHCP field SWS_TCPIP_00243, SWS_TCPIP_00244,
SWS_TCPIP_00245, SWS_TCPIP_00246,
SWS_TCPIP_00247, SWS_TCPIP_00248,
SWS_TCPIP_00249, SWS_TCPIP_00250,
SWS_TCPIP_00251, SWS_TCPIP_00252
SRS_Eth_00066 An API shall be available to SWS_TCPIP_00040, SWS_TCPIP_00189,
read any received DHCP SWS_TCPIP_00233, SWS_TCPIP_00234,
field SWS_TCPIP_00235, SWS_TCPIP_00236,
SWS_TCPIP_00237, SWS_TCPIP_00238,
SWS_TCPIP_00239, SWS_TCPIP_00240,
SWS_TCPIP_00241, SWS_TCPIP_00242
SRS_Eth_00087 Semi-Static Auto- SWS_TCPIP_00058, SWS_TCPIP_00201,
Configuration SWS_TCPIP_00216, SWS_TCPIP_00217,
SWS_TCPIP_00218, SWS_TCPIP_00219
SRS_Eth_00088 DHCP Server SWS_TCPIP_00058, SWS_TCPIP_00200
SRS_Eth_00090 The Neighbor Discovery SWS_TCPIP_00164, SWS_TCPIP_00263,
Protocol shall be SWS_TCPIP_00264, SWS_TCPIP_00281
implemented according to
IETF RFC 4861
SRS_Eth_00091 The Optimistic Duplicate SWS_TCPIP_00282, SWS_TCPIP_00283
Address Detection (DAD)
for IPv6 shall be
implemented according to
IETF RFC 4429
SRS_Eth_00092 The IPv6 Addressing SWS_TCPIP_00162, SWS_TCPIP_00269
Architecture shall be
implemented according to
IETF RFC 4291
SRS_Eth_00097 The Path MTU Discovery SWS_TCPIP_00267, SWS_TCPIP_00268
for IPv6 shall be
implemented according to
IETF RFC 1981
SRS_Eth_00098 ICMPv6 shall be SWS_TCPIP_00278, SWS_TCPIP_00298
implemented according to
IETF RFC 4443
SRS_Eth_00103 TcpIp shall support generic SWS_TCPIP_00018, SWS_TCPIP_00220,
upper layers SWS_TCPIP_00221, SWS_TCPIP_00222,
SWS_TCPIP_00223, SWS_TCPIP_00224,
SWS_TCPIP_00225, SWS_TCPIP_00226,
SWS_TCPIP_00227, SWS_TCPIP_00228,
SWS_TCPIP_00229
SRS_Eth_00109 TCP shall support the SWS_TCPIP_00063
Nagle algorithm according
to IETF RFC 896
SRS_Eth_00110 The Relationship between SWS_TCPIP_00265
Links and Subnet Prefixes
19 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

shall be considered
according to IETF RFC
5942
SRS_Eth_00111 Robustness against SWS_TCPIP_00260, SWS_TCPIP_00261,
unexpected communication SWS_TCPIP_00262, SWS_TCPIP_00266
patterns
SRS_Eth_00112 Ethernet-related BSW SWS_TCPIP_00255, SWS_TCPIP_00256,
modules shall report SWS_TCPIP_00257, SWS_TCPIP_00258,
relevant runtime errors SWS_TCPIP_00259
from the used protocols
SRS_Eth_00129 The TCPIP shall support SWS_TCPIP_00284, SWS_TCPIP_00285,
access to measurement SWS_TCPIP_00286, SWS_TCPIP_00287,
counter values SWS_TCPIP_00288, SWS_TCPIP_00289,
SWS_TCPIP_00290, SWS_TCPIP_00291,
SWS_TCPIP_00292, SWS_TCPIP_00293,
SWS_TCPIP_00294, SWS_TCPIP_00295,
SWS_TCPIP_00296
SRS_Eth_00135 - SWS_TCPIP_00326
SRS_Eth_00136 - SWS_TCPIP_00327
SRS_Eth_00137 - SWS_TCPIP_91013, SWS_TCPIP_91014,
SWS_TCPIP_91015
SRS_ETH_00138 - SWS_TCPIP_00300, SWS_TCPIP_00302
SRS_ETH_00139 - SWS_TCPIP_00304
SRS_ETH_00140 - SWS_TCPIP_00300
SRS_Eth_00140 - SWS_TCPIP_00329
SRS_Eth_00141 - SWS_TCPIP_00325
SRS_Eth_00142 The Security Architecture SWS_TCPIP_00352
for the Internet Protocol
shall be implemented
according to IETF RFC
4301
SRS_Eth_00143 The IP Authentication SWS_TCPIP_00352
Header (AH) shall be
implemented according to
IETF RFC 4302
SRS_Eth_00144 IP Encapsulating Security SWS_TCPIP_00352
Payload (ESP) shall be
implemented according to
IETF RFC 4303
SRS_Eth_00145 The Internet Key Exchange SWS_TCPIP_00352
(IKEv2) Protocol shall be
implemented according to
IETF RFC 7296
SRS_Eth_134 - SWS_TCPIP_00311
SRS_Eth_137 - SWS_TCPIP_00325

20 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

7 Functional specification
Figure 2 provides an architecture overview of the AUTOSAR TCP/IP stack. The
TCP/IP stack consists of the sub modules within the red box. Furthermore the KSF

interaction with other AUTOSAR modules (beside Dem and Det) is shown.

Figure 2: TCP/IP Architecture Overview

[SWS_TCPIP_00052]⌈ The TCP/IP stack shall consist of sub modules implementing


specific functionalities defined in the subchapters below. ⌋()

7.1 System Scalability

7.1.1 Background & Rationale

The TcpIp module supports a variety of different use case, not all of them are
required by each user. In order to achieve a scalable TcpIp Stack the protocols shall
be grouped according to the following scalability classes:

Scalability Class 1: IPv4 – In-Vehicle and Diagnostic Communication


Scalability Class 2: IPv6 – In-Vehicle and Diagnostic Communication
Scalability Class 3: IPv4 and IPv6 (Dual Stack) – In-Vehicle and Diagnostic
Communication

The following protocols shall be available in the respective Scalability Class:

21 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Feature

Scalability

Scalability

Scalability
Class 1

Class 2

Class 3
IPv4   
ARP   
ICMPv4   
DHCPv4   
Auto-IP   
UDP   
TCP   
IPv6   
NDP   
ICMPv6   
DHCPv6   

Figure 3: TcpIp Scalability Classes

In addition to the scalability classes, the following Feature Groups allow a more fine-
grained selection of optional features to address the specific needs of certain ECUs.

IPv4-Global Communication Feature Group:


The following features are available for Scalability Classes 1 and 3.
 Path MTU Discovery

IPv6-Global Communication Feature Group:


The following features are available for Scalability Classes 2 and 3.
 Path MTU Discovery
 IPv6 Anycasts Addresses
 NDP Redirect Messages

Special Features Group:


The following features are available for Scalability Classes 1, 2 and 3.
 DHCP Server

Security Features Group:


The following features are available for Scalability Classes 1, 2 and 3.
 TLS
 IPsec

7.1.2 Requirements

22 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00148]⌈ The TcpIp module for IPv4 – In-Vehicle and Diagnostic


Communication (Scalability class 1) shall support the features listed in Figure 3:
TcpIp Scalability Classes, column Scalability Class 1.⌋()

[SWS_TCPIP_00149]⌈ The TcpIp module for IPv6 – In-Vehicle and Diagnostic


Communication (Scalability class 2) shall support the features listed in Figure 3:
TcpIp Scalability Classes, column Scalability Class 2.⌋()

[SWS_TCPIP_00150]⌈ The TcpIp module for IPv4 and IPv6 (Dual Stack) – In-Vehicle
and Diagnostic Communication (Scalability class 3) shall support the features listed
in Figure 3: TcpIp Scalability Classes, column Scalability Class 3.⌋()

7.2 Internet Protocol Version 4

7.2.1 Internet Protocol (IPv4)

The Internet Protocol (IP) is the main protocol of the TCP/IP stack and is responsible
for delivering datagrams from a source host identified by the source address to one
or multiple destination hosts identified by the destination address. IP hides the
underlying physical network interface, is an unreliable, best-effort, and
connectionless packet delivery protocol.

[SWS_TCPIP_00053]⌈ The TcpIp shall implement the Internet Protocol as defined in


IETF RFC 791 (Internet Protocol of version 4).⌋()

[SWS_TCPIP_00095]⌈ The TcpIp shall encapsulate IP packets in Ethernet frames


according to IETF RFC 894.⌋()

[SWS_TCPIP_00096]⌈ The TcpIp shall support the identification of the network an IP


address belongs to, by using a network mask (prefix) in addition to the IP address
according to IETF RFC 4632, section 3.1.⌋()

[SWS_TCPIP_00102]⌈ The TcpIp shall fulfill the Internet Protocol related


requirements specified by IETF RFC 1122, section 3.2.1.1 (Version number), 3.2.1.2
(Checksum), 3.2.1.3 (Addressing), 3.2.1.7 (TTL), and 3.3.2 (Reassembly).⌋()

[SWS_TCPIP_00097]⌈ The TcpIp shall be able to transmit IP datagrams to a group


of hosts identified by a single IP destination address (multicast address) according to
IETF RFC 1112, section 4, 6.2, and 6.4.⌋()

23 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00098]⌈ The TcpIp shall be able to receive multicast IP datagrams


identified by a single IP destination address (multicast address) according to IETF
RFC 1112, section 4 and 7.2 (excluding the requirement for IGMP).⌋()

[SWS_TCPIP_00054]⌈ The TcpIp shall be able to reassemble incoming datagrams


that are fragmented according to IETF RFC 815 (IP Datagram Reassembly
Algorithms).⌋()

[SWS_TCPIP_00231]⌈ The TcpIp shall fragment oversized IPv4 frames before


transmission according to the description in IETF 791 Section Fragmentation and
Reassembly.⌋()

[SWS_TCPIP_00055]⌈ The TcpIp shall discover the maximum transmission unit


(MTU) for a path as defined in IETF RFC 1191 (Path MTU Discovery).⌋()

7.2.2 Address Resolution Protocol (ARP)

[SWS_TCPIP_00056]⌈ The TcpIp shall implement the Address Resolution Protocol


(ARP) as defined in IETF RFC 826.⌋()

[SWS_TCPIP_00090]⌈ The TcpIp shall limit the number of ARP table (address
resolution cache) entries to the number specified by the configuration parameter
TcpIpArpTableSizeMax.⌋()

[SWS_TCPIP_00091]⌈ The TcpIp shall remove entries of the ARP table if they are
not used for the timeout specified by the configuration parameter
TcpIpArpTableEntryTimeout. If TcpIpArpTableEntryTimeout is set to INF, the TcpIp
module shall never remove entries from the ARP table.⌋()

[SWS_TCPIP_00092]⌈ The TcpIp shall use the information from each received IP
packet to update the ARP table in addition to received ARP packets.⌋()

[SWS_TCPIP_00142]⌈ The TcpIp shall call <Up_PhysAddrTableChg>() directly after


each ARP table change:
(a) If TcpIp adds a new entry or updates an existing one, the parameter valid shall
be set to TRUE and the parameters IpAddrPtr and PhysAddrPtr shall be set
according to the new or updated entry.
(b) In case TcpIp removes an entry, valid shall be set to FALSE and the parameters
IpAddrPtr and PhysAddrPtr shall be set according to the removed entry.⌋()
24 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00350]⌈After the transmission of an ARP request the TcpIp shall skip


the transmission of any further ARP requests to the same destination within a
duration of TcpIpArpRequestTimeout seconds, according to the mechanism to
prevent ARP flooding described in IETF RFC 1122, section 2.3.2.1 ARP Cache
Validation.⌋()

[SWS_TCPIP_00351]⌈ The TcpIp shall process received ARP packets either directly
within the context of the TcpIp_RxIndication or the first subsequent
TcpIp_MainFunction.⌋()

[SWS_TCPIP_00093]⌈ On assignment of a new IP address the TcpIp shall send a


configurable number (TcpIpArpNumGratuitousARPonStartup) of gratuitous ARP
replies according to IETF RFC 2002, section 4.6, second indent. These
announcements shall be timed according to IETF RFC 5227 section 2.3. Announcing
an Address.⌋()

7.2.3 Dynamic Configuration of IPv4 Link-Local Addresses (Auto-IP)

[SWS_TCPIP_00057]⌈ The TcpIp shall support the dynamic configuration of IPv4


Link Local addresses as defined in IETF RFC 3927 (Dynamic Configuration of IPv4
Link-Local Addresses).⌋()

7.2.4 Internet Control Message Protocol (ICMPv4)

[SWS_TCPIP_00059]⌈ The TcpIp shall support the transmission and reception of


Internet Control Message Protocol (ICMPv4) messages as defined in IETF RFC 792
(Internet Control Message Protocol in version 4).⌋()

[SWS_TCPIP_00277]⌈ The TcpIp shall only reply to ICMPv4 Echo Request


Messages if they are valid and TcpIpIcmpEchoReplyEnabled is set to TRUE.⌋
(SRS_Eth_00016)

[SWS_TCPIP_00297]⌈ If a TcpIpIcmpMsgHandler is configured, the TcpIp shall call


the respective <Up>_IcmpMsgHandler() if an ICMPv4 message is received and not
handled by the TcpIp directly.⌋(SRS_Eth_00016)

Note: For example, if the TcpIp replies to an ICMP echo request


<Up>_IcmpMsgHandler() is not called for this message.

25 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

7.3 Internet Protocol Version 6

[SWS_TCPIP_00153]⌈ The TcpIp shall support the frame format for transmission of
IPv6 packets and the method of forming IPv6 link-local addresses and statelessly
autoconfigured addresses on Ethernet networks as defined in IETF RFC 2464
(Transmission of IPv6 Packets over Ethernet Networks).⌋()

[SWS_TCPIP_00154]⌈ The TcpIp shall support the source address selection


algorithm as defined in IETF RFC 6724 (Default Address Selection for Internet
Protocol Version 6 (IPv6)). Only section 5 Source Address Selection shall be
supported.⌋()

[SWS_TCPIP_00156]⌈ The TcpIp shall support the IETF RFC 5095 (Deprecation of
Type 0 Routing Headers in IPv6). The functionality provided by IPv6's Type 0
Routing Header can be exploited in order to achieve traffic amplification over a
remote path for the purposes of generating denial-of-service traffic. This document
updates the IPv6 specification to deprecate the use of IPv6 Type 0 Routing Headers,
in light of this security concern.⌋()

[SWS_TCPIP_00157]⌈ The TcpIp shall support the section 5.1. Node Configuration
Variables, section 5.3. Creation of Link-Local Addresses, section 5.4, Duplicate
Address Detection, section 5.5 Creation of Global Addresses and section 5.6
Configuration Consistency of the IETF RFC 4862 (IPv6 Stateless Address
Autoconfiguration).⌋()

[SWS_TCPIP_00158]⌈ The TcpIp shall support the Path MTU Discovery for IPv6 as
defined in IETF RFC 1981 (Path MTU Discovery for IP version 6). If the max. MTU is
used, the Path MTU Discovery shall not try to increase the value.⌋()

[SWS_TCPIP_00159]⌈ The TcpIp shall support the Duplicate Address Detection as


defined in IETF RFC 4429 (Optimistic Duplicate Address Detection (DAD) for IPv6).⌋
()

7.3.1 Internet Protocol (IPv6)

[SWS_TCPIP_00160]⌈ The TcpIp shall support the basic IPv6 header and the initially
defined IPv6 extension headers and options as defined in IETF RFC 8200 (Internet
Protocol, Version 6 (IPv6) Specification).⌋()

26 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00161]⌈ The TcpIp shall support the reception and reassembly of


fragmented IPv6 frames according to IETF RFC 8200 Section 4.5 Fragment Header.
⌋()

[SWS_TCPIP_00155]⌈ The TcpIp shall support the section 4, first paragraph of the
IETF RFC 5722 (Handling of Overlapping IPv6 Fragments). The IETF RFC 5722
demonstrates the security issues associated with allowing overlapping fragments and
updates the IPv6 specification to explicitly forbid overlapping fragments (transmission
and reception).⌋()

[SWS_TCPIP_00232]⌈ The TcpIp shall fragment oversized IPv6 frames before


transmission according to IETF RFC 8200 Section 4.5 Fragment Header.⌋()

[SWS_TCPIP_00162]⌈ The TcpIp shall support the section 2, IPv6 Addressing of


IETF RFC 4291 (IP Version 6 Addressing Architecture) excluding Section 2.6.
Anycast Addresses. Section 2.8 A Node's Required Addresses shall be limited to the
node requirements for host only.⌋(SRS_Eth_00092)

[SWS_TCPIP_00269]⌈ The TcpIp shall support the Section 2.6. Anycast Addresses
of IETF RFC 4291 (IP Version 6 Addressing Architecture).⌋(SRS_Eth_00092)

7.3.2 Internet Control Message Protocol (ICMPv6)

[SWS_TCPIP_00163]⌈ The TcpIp shall support the Internet Control Message


Protocol Version 6 as defined in IETF RFC 4443 (Internet Control Message Protocol
(ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification).⌋()

[SWS_TCPIP_00278]⌈ The TcpIp shall only reply to ICMPv6 Echo Request


Messages if they are valid and TcpIpIcmpV6EchoReplyEnabled is set to TRUE.⌋
(SRS_Eth_00098)

[SWS_TCPIP_00298]⌈ If a TcpIpIcmpV6MsgHandler is configured, the TcpIp shall


call the respective <Up>_IcmpMsgHandler() if an ICMPv6 message is received and
not handled by the TcpIp directly.⌋(SRS_Eth_00098)

Note: For example, if the TcpIp replies to an ICMPv6 echo request


<Up>_IcmpMsgHandler() is not called for this message.

7.3.3 Neighbor Discovery Protocol (NDP)

27 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00164]⌈ The TcpIp shall support the Neighbor Discovery protocol for
IP Version 6 as defined in IETF RFC 4861 (Neighbor Discovery for IP version 6
(IPv6)) except the sections 4.5 Redirect Message Format, 6.2. Router Specification,
7.2.8. Proxy Neighbor Advertisements and 8. Redirect Function.⌋(SRS_Eth_00090)

[SWS_TCPIP_00281]⌈ The TcpIp shall support the handling of redirect messages as


defined in IETF RFC 4861 (Neighbor Discovery for IP version 6 (IPv6)) Section 8.3.
Host Specification.⌋(SRS_Eth_00090)

[SWS_TCPIP_00261]⌈ If TcpIpNdpDefensiveProcessing is set to TRUE, the NDP


shall silently discard all received Neighbor Advertisements that have not been
requested by a previously transmitted Neighbor Solicitation. ⌋(SRS_Eth_00111)

[SWS_TCPIP_00262]⌈ If TcpIpNdpDefensiveProcessing is set to TRUE, the NDP


shall skip the update of the Neighbor Cache upon processing received Neighbor
Solicitations.⌋(SRS_Eth_00111)

[SWS_TCPIP_00263]⌈ The TcpIp shall limit the number of neighbor cache entries to
the number specified by the configuration parameter
TcpIpNdpMaxNeighborCacheSize ([ECUC_TcpIp_00129 : ])⌋(SRS_Eth_00090)

[SWS_TCPIP_00264]⌈ In case the neighbor cache is full and a new entry shall be
added, the TcpIp shall drop the oldest entry to be able to add the new entry⌋
(SRS_Eth_00090)

[SWS_TCPIP_00265]⌈ The TcpIp shall adhere to the rules defined in IETF RFC 5942
- Section 4 “Host Rules” and shall use the updated definition of “on-link” according to
IETF RFC 5942 - Section 6 “Updates to RFC 4861”.⌋(SRS_Eth_00110)

[SWS_TCPIP_00165]⌈ If a packet shall be transmitted to a remote host and the link


layer address does not exist in the Neighbor Cache, the TcpIp shall queue this
packet according to IETF RFC 4861, section 7.2.2. Sending Neighbor Solicitations,
5th paragraph and transmit the packet when the address has been resolved.⌋()

7.4 Internet Protocol Security (IPsec)

[SWS_TCPIP_00352] ⌈TcpIp shall support IPsec according to AUTOSAR foundation


RS_IPsecProtocol [11].⌋(SRS_Eth_00142, SRS_Eth_00143, SRS_Eth_00144,
SRS_Eth_00145)
28 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00353] ⌈IKEv2 shall be implemented according to IETF RFC 7296 and


RS_IPSEC_00021 with the limitations defined in RS_IPSEC_00004. IKEv1 shall not
be supported. ⌋(RS_IPSEC_00004, RS_IPSEC_00021)

Note: To ensure that IKEv2 is interoperable with the IETF IPsec standards in general
and resolve any ambiguities, the open source IPsec implementation strongSwan
(strongswan.org) is used as reference.

[SWS_TCPIP_00355] ⌈The general IKEv2 connection configuration, e.g. connection


lifetime and re-keying / re-authentication timeouts, dead peer detection, may be
configured via the settings in the container "IKEConnections". ⌋(RS_IPSEC_00010,
RS_IPSEC_00011, RS_IPSEC_00013)

[SWS_TCPIP_00356] ⌈The IKEv2 certificates used for for authentication with other
IKEv2 nodes may be configured via the settings in the container "IKECertificates" and
"IKECertificate". ⌋(RS_IPSEC_00014, RS_IPSEC_00025)

[SWS_TCPIP_00357] ⌈The security policy database, which defines which


connections shall be protected by IPsec and by which protections, may be configured
via the settings in the container "TcpIpSpdEntry" and "TcpIpIpSecPriority". The
IpSecPriority is used to establish the order in which the SpdEntries are checked. The
first successful rule match will be executed, disregarding all lower priority rules.⌋
(RS_IPSEC_00022, RS_IPSEC_00023)

[SWS_TCPIP_00358] ⌈The priority of proposed algorithms for IKEv2 handshakes


may be configured in the container "IKEIkeSaProposal". ⌋(RS_IPSEC_00027)

7.5 IP Based Protocols

7.5.1 Local Address Table

[SWS_TCPIP_00099]⌈ The TcpIp shall maintain a table of local IP addresses, which


can be assigned to an EthIf controller during runtime according to the configuration
container TcpIpLocalAddr (including its subcontainers).⌋()

Note: Each entry of the local IP address table is uniquely identified by the
configuration parameter TcpIpAddrId.

[SWS_TCPIP_00100]⌈ In case no TcpIpStaticAddressConfig is provided, the TcpIp


shall enable to specify a multicast IP address during runtime via
TcpIp_RequestIpAddrAssignment(). ⌋()
29 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00130]⌈ The Local IP address used for a socket is specified via


TcpIp_Bind().⌋()

[SWS_TCPIP_00219]⌈ If a TcpIpAddrAssignment configured with TCPIP_STORE is


started, TcpIp shall check the NvMBlock (see ECUC_TcpIp_00184 : ) for a valid IP
address. If a valid address is present, TcpIp shall assign this address as if it was a
static address. If no valid address is present, TcpIp shall start the respective IP
address assignment method related to the TcpIpAddrAssignment. Once the
procedure is complete, TcpIp shall store the new address in the NvMBlock.⌋
(SRS_Eth_00087)

7.5.2 User Datagram Protocol (UDP)

[SWS_TCPIP_00060]⌈ The TcpIp shall implement the User Datagram Protocol


(UDP) as defined in IETF RFC 768 (User Datagram Protocol).⌋()

[SWS_TCPIP_00103]⌈ The TcpIp shall fulfill the UDP related requirements specified
by IETF RFC 1122, section 4.1.3.1 (Ports), 4.1.3.4 (UDP Checksums), and 4.1.3.6
(Invalid Addresses).⌋()

7.5.3 Transmission Control Protocol (TCP)

[SWS_TCPIP_00061]⌈ The TcpIp shall implement the Transmission Control Protocol


(TCP) as defined in IETF RFC 793 (Transmission Control Protocol)⌋()

[SWS_TCPIP_00104]⌈ The TcpIp shall fulfill the TCP related requirements specified
by IETF RFC 1122, section 4.2.2.3 (Window Size), 4.2.2.5 (TCP Options), 4.2.2.6
(MSS), 4.2.2.7 (Checksum), 4.2.2.9 (Initial sequence number selection), 4.2.2.10
(Simultaneous Open Attempts), 4.2.2.11 (Recovery from Old Duplicate SYN),
4.2.2.13 (Closing a Connection, excluding “half-duplex close”), 4.2.2.15
(Retransmission Timeout), 4.2.2.16 (Managing the Window), 4.2.2.17 (Probing Zero
Windows), 4.2.2.18 (Passive OPEN Calls), 4.2.2.19 (TTL), 4.2.3.2 (delayed ACK),
4.2.3.6 (TCP Keep Alive), and 4.2.3.10 (Remote Address Validation).⌋()

[SWS_TCPIP_00062]⌈ The TcpIp shall support the Window and Acknowledgment


Strategies in TCP as defined in ETF RFC 1122:
 4.2.3.1 Retransmission Timeout Calculation
 4.2.3.2 When to Send an ACK Segment
 4.2.3.3 When to Send a Window Update
30 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

 4.2.3.4 When to Send Data.⌋()

[SWS_TCPIP_00063]⌈ The TcpIp shall implement the Nagle Algorithm as defined in


IETF RFC 1122: 4.2.3.4 When to Send Data.⌋(SRS_Eth_00109)

[SWS_TCPIP_00064]⌈ The TcpIp shall implement the congestion control strategies


slow-start, congestion avoidance, fast retransmit and fast recovery as defined in IETF
RFC 5681.⌋()

[SWS_TCPIP_00168]⌈ The TcpIp shall support the specific algorithm for responding
to partial acknowledgments as defined in IETF RFC 6582 (The NewReno
Modification to TCP's Fast Recovery Algorithm).The modification shall only be used if
the Fast Recovery strategy of IETF RFC 5681 is enabled.⌋()

7.5.4 Transport Layer Security (TLS)

[SWS_TCPIP_00300] ⌈TcpIp shall support the Transport Layer Security for TCP
communication according to IETF RFC5246, at least chapters 7 and 8.⌋
(SRS_ETH_00138, SRS_ETH_00140)

At least those parts from IETF RFC5246 need to be implemented that are required
for a basic and compatible interoperability with other nodes without any optional
extensions.

[SWS_TCPIP_00301] ⌈Further recommendation according to IETF RFC 7525 for a


secure TLS implementation shall be considered.⌋()

[SWS_TCPIP_00302] ⌈TLS connection requests with TLS version lower than 1.2
(IETF RFC5246) shall be disregarded respectively rejected with an alert. Thus, no
backward compatibility handling to TLS versions lower than TLS 1.2 as described in
IETF RFC5246, App. E shall be implemented or supported.⌋(SRS_ETH_00138)

[SWS_TCPIP_00346] ⌈
If the TLS connection references TlsCiphersuiteDefinition of type
TLS_VERSION_V13, then TLS V1.3 shall be the preferred protocol version. Only if

31 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

this fails and ciphersuites for TLS V1.2 are also assigned to the TLS connection, then
a downgrade operation to TLS V1.2 shall be allowed.

Info: If the TLS connection does not contain ciphersuites for TLS V1.3, then the
handshake shall be initiated indicating TLS V1.2 protocol.

[SWS_TCPIP_00303] ⌈ Session renegotiation shall be discarded by AUTOSAR TLS


implementation.
⌋()

The KeyExchange algorithms as described in section 7.4.7 and section 8 of IETF


RFC5246 depend on the ciphersuites. The necessary CSM jobs for key exchange
are therefore referenced in the ciphersuite configuration.

[SWS_TCPIP_00304] ⌈ If ciphersuites for TLS include support for elliptic curves then
mandatory parts of IETF RFC 4492 shall be supported accordingly.
⌋(SRS_ETH_00139)

At least, the corresponding Key Exchange algorithms according to section 2 of IETF


RFC 4492 have to be implemented such as ECDHE. Extensions according to section
5 only have to be supported if certificates with respective elliptic curve parameters
are expected to be used.

[SWS_TCPIP_00329] ⌈
The TLS implementation must support at least one ciphersuite that corresponds to
the DoIP specification ISO13400-2 so that an upper layer is able to connect such a
socket to a diagnostic communication.
⌋(SRS_Eth_00140)

[SWS_TCPIP_00305] ⌈ The TLS connection shall have a configuration parameter


that defines if the socket is used for TLS client or TLS server communication from the
node’s perspective.⌋()

[SWS_TCPIP_00306] ⌈ A TLS connection that is used for TLS server requires a


reference to a local certificate with its private key.
⌋()

In the configuration, TLS connections can be collected in TlsConnectionGroups. If


one TLS connection in a group is already active, another TLS connection of the same
group shall not be activated. In other words, only one TLS connection of a group
shall be active at the same time. This allows to define exclusive resources for a TLS

32 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

connection group and resources for TLS connections in the same group can be
shared.

[SWS_TCPIP_00315] ⌈ A TLS Server shall request client authentication if the


selected TLS connection is configured accordingly (i.e. the config parameter
TcpIpTlsUseClientAuthenticationRequest is set to TRUE). In this case, a local
certificate with its private key is also required for a TLS client and shall be provided to
the server on demand during the TLS handshake.
⌋()

[SWS_TCPIP_00349] ⌈
If TcpIpTlsUseSecurityExtensionRecordSizeLimit is set to TRUE then the
record_size_limit extension shall be used to negotiate the max. fragment length
between TLS server and client according to IETF RFC 8449, chapter 4.1.
⌋()

The assignment of TLS connections to TCP sockets is either based on static


configuration (static TLS connection assignment) or done dynamically by means of
an API call (dynamic TLS connection assignment).

[SWS_TCPIP_00307] ⌈ In dynamic TLS connection assignment a TLS connection


shall be assigned to a TCP socket through a function call to
TcpIp_ChangeParameter() with the ParameterId
TCPIP_PARAMID_TLS_CONNECTION_ASSIGNMENT. The ParameterValue of the
function provides a reference to a TLS connection for this socket.
⌋()

Note: A typical approach to dynamically assign a TLS connection to a socket is


during the channel set-up before a socket connection has been established.
However, it shall also be possible to perform this operation after the socket
connection has been established. This might be useful starting with plain text
communication and later on switching to TLS encrypted communication to
accomplish for e.g. a STARTTLS operation.

[SWS_TCPIP_00337] ⌈
For dynamic TLS connection assignment via TcpIp_ChangeParameter(), the call to
TcpIp_ChangeParameter() shall initiate the TLS handshake as follows:
 a TLS Server shall wait for a ClientHello as the next message on this socket.
 a TLS Client shall start sending a ClientHello message.
 after that TcpIp shall no longer pass on plain messages to upper or lower layer
but pass it on to TLS.
⌋()

The successful completion of the TLS handshake is signaled according to


SWS_TCPIP_00345.
33 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00308] ⌈ For static TLS connection assignment a port and optionally


an address is defined for at least one TLS connection, TCP shall check during TCP
SYN (either reception or transmission of SYN) if a port assignment is available for
any TLS connection and if this TLS connection is not in use. If so, the TCP shall
check the ports and automatically assign this TLS connection to the socket if a port
matches.
⌋()

[SWS_TCPIP_00343] ⌈
For static TLS connection assignment the TCP client shall check its remote port
configuration when the SYN frame will be transmitted. If the TLS port configuration
matches it shall assign the corresponding TLS connection to the socket.
⌋()

Note: This approach rules out use cases where one client uses different TLS settings
(including not using TLS at all) for different local sockets when connecting to the
same remote listening socket. However, having one client connecting to the same
remote listening socket via different local sockets using different TLS settings is
deemed an exotic use case and is thus deliberately not supported.

[SWS_TCPIP_00344] ⌈
For static TLS connection assignment the TCP server shall check its local port
configuration when the SYN frame is received. If the TLS port configuration matches
it shall assign the corresponding TLS connection to the socket.
⌋()

Note: This approach rules out use cases where one server uses different TLS
settings (including not using TLS at all) for different remote sockets but the same
local listening socket. However, having one server using different TLS settings for
different clients with the same listening socket is deemed an exotic use case and is
thus deliberately not supported.

[SWS_TCPIP_00336] ⌈
For static TLS connection assignment the TCP client shall initiate the TLS handshake
if a TLS connection is assigned to the socket after the SYN ACK has been
transmitted successfully.
⌋()

[SWS_TCPIP_00309] ⌈ For static TLS connection assignment at the TCP client the
interface <Up_TcpConnected> shall not be called after sending the ACK of the SYN
to the server. Instead, this function shall be called after the TLS handshake has been
finished successfully.
34 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

⌋()

[SWS_TCPIP_00328] ⌈For static TLS connection the TCP server shall expect a TLS
handshake after the ACK for the SYN has been received. All incoming messages for
this socket shall further be passed on to TLS.
⌋()

[SWS_TCPIP_00310] ⌈ For static TLS connection assignment at the TCP server side
the interface <Up_TcpAccepted> shall not be called after the ACK has been
received. Instead, this function shall be called after the TLS handshake has been
finished successfully.
⌋()

[SWS_TCPIP_00345] ⌈For both dynamic and static TLS connection assignment, the
socket owner shall be informed with <Up_TcpIpEvent> and the event type
TCPIP_TLS_HANDSHAKE_SUCCEEDED if an event callback is defined for a socket
owner and the TLS handshake has been finished successfully. For static TLS
connection assignment the call to <Up_TcpIpEvent> and the event type
TCPIP_TLS_HANDSHAKE_SUCCEEDED shall take place after the call to
<Up_TcpAccepted>/<Up_TcpConnected>.
⌋()

[SWS_TCPIP_00311] ⌈ A TLS server shall select the locally assigned ciphersuite


with the highest priority that matches with one of the received ciphersuites. The local
certificate that was assigned to this combination of TLS connection and TLS
ciphersuite shall be provided during the handshake.
⌋(SRS_Eth_134)

[SWS_TCPIP_00316] ⌈
The TLS SERVER shall provide the certificate referenced by TcpIpTlsConnection/
TcpIpTlsCipherKeyMLocalCertificate through the server_certificate message. The
certificate shall be requested from the Key Manager with the function
KeyM_GetCertificate().
⌋()

[SWS_TCPIP_00338] ⌈
If a certificate is received with the certificate or certificateVerify handshake message
of TLS it shall be provided to the Key Manager using the function
KeyM_SetCertificate with the reference TcpIpTlsCipherKeyMRemoteCertificate of

35 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpTlsConnection. Afterwards, the certificate is verified using the function


KeyM_VerifyCertificate() or, if more than one certificate has been received with the
handshake message, with the function KeyM_VerifyCertificateChain(). This function
also uses the TcpIpTlsCipherKeyMRemoteCertificate reference.
⌋()

The TLS module uses CSM jobs that are assigned to the ciphersuite to perform the
cryptographic operations. The key material will be negotiated and loaded during the
handshake.

Note:
CSM jobs can run synchronously or asynchronously. If a job shall run in
asynchronous or synchronous mode depends on its configuration. For asynchronous
jobs a callback is needed which are not defined in this document. They are vendor
specific and shall be configured accordingly in the CSM as documented.

[SWS_TCPIP_00339] ⌈
TLS shall use the CSM job referenced by TcpIpTlsCsmRandomGenerateJobRef
referenced by TcpIpTlsHandshake and referenced in the TcpIpTlsConnection to
generate random values. The system outside the TLS is responsible to collect
entropy to seed the RNG if needed.
⌋()

[SWS_TCPIP_00340] ⌈
After selection of the ciphersuite the assigned TcpIpTlsHandshake of the TLS
connection will provide all necessary references to CSM jobs and keys necessary to
accomplish the key exchange algorithms.
⌋()

Info: Not all CSM jobs referenced in the TcpIpTlsHandshake container are required.
Which of the jobs and keys configured for a TLS handshake are needed for operation
mainly depends on the ciphersuite and its associated certificate. They must be pre-
configured and assigned accordingly. It also depends on the TLS type if it is a TLS
Server or a TLS Client, which ciphersuites are assigned to the TLS connections and
which public key type is contained in the certificate, i.e. if it is an ECC or RSA public
key.

The following table provides an overview of jobs and keys for CSM that needs to be
configured for the handshake operation:

Job type RSA ECC


TcpIpTlsCsmPrfMac[Job|Key]Ref C/S C/S
TcpIpTlsCsmHashVerifyJobRef C/S C/S
36 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpTlsCsmMasterSecretKeyRef C/S C/S


TcpIpTlsCsmKeyExchangeCalcPubValJobRef - C/S1
TcpIpTlsCsmKeyExchangeKeyRef - C/S2
TcpIpTlsCsmKeyExchangeCalcSecretJobRef - C/S1
TcpIpTlsCsmKeyExchangeSignatureGenerate[Job|Key]Ref - S/B
TcpIpTlsCsmKeyExchangeSignatureVerify[Job|Key]Ref - C/B
TcpIpTlsCsmKeyExchangeEncrypt[Job|Key]Ref C/B -
TcpIpTlsCsmKeyExchangeDecrypt[Job|Key]Ref S/B -

C: TLS Client implementation


S: TLS Server implementation
B: Additionally required if client authentication is activated.
1
Reference is used for asynchronous DH(E) operation.
2
Reference is used for synchronous DH(E) operation.

The following examples can be used as a guideline.

Example #1: A ciphersuite that references RSA provides


TcpIpTlsCsmKeyExchangeEncryptJobRef for the TLS client to encrypt the pre-
master secret. First, the TLS client verifies the received certificate, will take the public
key and copy it into the CSM key location referenced by
TcpIpTlsCsmKeyExchangeEncryptKeyRef. Then encrypts the pre-master secret and
send it to the TLS server. The Server uses TcpIpTlsCsmKeyExchangeDecryptJobRef
to decrypt the pre-master secret. The job either references statically the private key
or, if TcpIpTlsConnection/ TcpIpTlsCipherKeyMLocalCertificate/
KeyMCertPrivateKeyStorageCryptoKeyRef/ KeyMCryptoKeyCsmKeyTargetRef is
available, copy this key into TcpIpTlsCsmKeyExchangeDecryptKeyRef.

Example #2: A ciphersuite references ECDHE_ECDSA and the used certificate


contains appropriate ECC keys, ECDSA capable in this case. The server generates
DH-parameter using the crypto job Csm_KeyExchangeCalcPubVal() using the
reference to TcpIpTlsCsmKeyExchangeKeyRef and signs the result using
TcpIpTlsHandshake/ TcpIpTlsCsmKeyExchangeSignatureGenerate holding a
reference to the certificate private key. If the key is not statically assigned to the job it
must be copied accordingly (see example #1). The resulting data is sent to the TLS
client, who verifies the certificate and uses the key of the certificate to verify the
provided ECDSA signature from the server using TcpIpTlsHandshake/
TcpIpTlsCsmKeyExchangeSignatureVerify. Afterwards, if successful, calculates its
own DH parameter and provides this to the server. Both, TLS client and server will
then calculate the pre-master secret using Csm_KeyExchangeCalcSecret().

Example #3: The selected ciphersuite defines a pre-shared key according to IETF
RFC 4279. The server provides the psk_identity_hint in the ServerKeyExchange
message. This can either be derived from the TcpIpTlsPskIdentity/
TcpIpTlsPresharedKeyIdentityHint or, if not specified, it can be queried from the user
callback TcpIpTlsPskGetKeyIdentyHintFunc. The TLS client uses the hint to select a
pre-shared key that is known by both the TLS Client and this TLS Server. If one key
can uniquely be identified with the identity hint, then the TcpIpTlsPskIdentity
configuration can be used as an alternative to the callback functions. In this case, the
37 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

selected key can be determined by TcpIpTlsPresharedKeyIdentityHint and the


TcpIpTlsPresharedKeyIdentity with TcpIpTlsPresharedKeyCsmKeyRef can be used
further. A more flexible solution provides the usage of the callback
TcpIpTlsPskGetClientKeyIdentityFunc that allows the selection of a key with its
identity at runtime. After the key and its identity has been selected on the client side,
the psk_identity will be provided back to the TLS server through the
ClientKeyExchange message. On the TLS server side, the corresponding key can be
identified in the same way, either through the static configuration of
TcpIpTlsPskIdentity/ TcpIpTlsPresharedKeyIdentity or can be queried through a
callback function determined by TcpIpTlsPskGetServerKeyIdentityFunc on server
side. After the key has been selected, the master secret can be determined with the
corresponding CSM jobs that are allocated in the TcpIpTlsHandshake container.

[SWS_TCPIP_00341] ⌈
TLS shall use TcpIpTlsHandshake /TcpIpTlsCsmHashVerifyJobRef to calculate the
hash over the handshake messages which is provided with the finish handshake
message.
⌋()

[SWS_TCPIP_00347] ⌈TLS shall use TcpIpTlsCsmPrfMacJobRef to calculate the


master secret. The configuration item TcpIpTlsCsmPRFSupportType shall specify
how the CSM job supports the generation of the master secret.
⌋()

If TcpIpTlsCsmPRFSupportType is set to TLS_PRF_CSM_NO_SUPPORT then


TcpIpTlsCsmPrfMacJobRef references a job for MAC generation. If it is set to
TLS_PRF_CSM_INOUT_REDIRECT_SUPPORT, then the re-direction support
mentioned below shall be used. If the configuration is set to
TLS_PRF_CSM_FULL_SUPPORT then the CSM job will generate the master secret
completely on its own. The TLS just need to call the job and the master secret will be
available in the element ID #1 of TcpIpTlsCsmMasterSecretKeyRef. A key
distribution to the worker jobs must be done in any case.

It is recommended to use input and output re-direction for the


TcpIpTlsCsmPrfMacJobRef, that was introduced in CSM with AUTOSAR V4.4. This
allows to leave the master secret and intermediate results of the calculation within
the crypto driver (e.g. in HSM). The key elements of TcpIpTlsCsmPrfMacKeyRef is
used for input and TcpIpTlsCsmMasterSecretKeyRef as output reference for this job.
Csm_KeyElementSet() is used for initial value settings, Csm_KeyCopy() and
Csm_KeyCopyPartial() are used to set-up the input values for the job operation.
Csm_KeyCopyPartial() is finally used to distribute the master secret results to the
TcpIpTlsWorker key references that are used by the worker jobs during application
data transmission.

[SWS_TCPIP_00312] ⌈If TcpIpTlsServerNameIdentification is configured for a TLS


connection the configured name shall be added to the Client Hello message as the
server name identification (SNI).
⌋()

38 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00313] ⌈If a TLS server receives a ClientHello message that contains


a server name identification with length greater than 0 the server shall search in
TcpIpTlsCertificateIdentity for a matching identity reference and shall provide the
certificate that is located in this container during the handshake.
⌋()

[SWS_TCPIP_00314] ⌈The time stamp information that is contained in the


ClientHello message shall be provided through the configured
TcpIpTlsConnectionGetTimeFunc callout function.
⌋()

[SWS_TCPIP_00325] ⌈If a ciphersuite is used for pre-shared keys and


TcpIpTlsUsePresharedKeys is set to TRUE, callback functions shall provide the
necessary information on the TLS client and the TLS server side to select the pre-
shared keys according to IETF RFC 4279. The callbacks are used to provide the
identity hint and eventually the key identification during the handshake. The callback
functions are used to select the CSM key that is used for further processing.
Alternatively, if callback functions are not configured, the static parameter
configuration from TcpIpTlsPskIdentity can be used.
⌋(SRS_Eth_00141, SRS_Eth_137)

[SWS_TCPIP_00326] ⌈TLS shall be able to open and maintain a maximum number


of connections as defined in TcpIpTlsMaxConnections.
⌋(SRS_Eth_00135)

[SWS_TCPIP_00327] ⌈TCP data streams shall be segmented by TLS into fragments.


The maximum size of a fragment shall be used as configured in
TcpIpTlsMaxFragmentLength. A TCP socket must be able to transmit at least such a
fragment within one segment.
⌋(SRS_Eth_00136)

[SWS_TCPIP_00348] ⌈On reception of a TLS “close_notify” message the TLS


connection shall be closed and all security related resources shall be destroyed. It
shall not be possible to perform further plain text communication through TCP on this
socket after the TLS connection was closed. Thus, it is recommended to close the
TCP socket, too.
⌋()

7.5.5 Dynamic Host Configuration Protocol

[SWS_TCPIP_00200]⌈ The server part of the Dynamic Host Configuration Protocol


shall be pre compile time configurable ON/OFF by the configuration parameter
TcpIpDhcpServerEnabled (see ECUC_TcpIp_00183 : )⌋(SRS_Eth_00088)

39 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00201]⌈ The server part of the Dynamic Host Configuration Protocol


shall respond to client requests by assigning an available IP address according to the
DHCP server configuration for the related TcpIpCtrl.⌋(SRS_Eth_00087)

[SWS_TCPIP_00218]⌈ If the configuration contains TcpIpDhcpAddressAssignments


that refer to specific ports of an Ethernet Switch, DHCP server shall identify the port
the request was received from, by calling EthIf_GetPortMacAddr() with the MAC
address of the DHCP client and choose an available IP address of the
TcpIpDhcpAddressAssignment related to the same port.⌋(SRS_Eth_00087)

7.5.5.1 Dynamic Host Configuration Protocol (DHCPv4)


[SWS_TCPIP_00058] ⌈The TcpIp shall implement the client and the server part of
the Dynamic Host Configuration Protocol (DHCPv4) for the dynamic configuration of
IPv4 addresses as defined in IETF RFC 2131 (Dynamic Host Configuration Protocol).
⌋(SRS_Eth_00087, SRS_Eth_00088)

[SWS_TCPIP_00152]⌈ The TcpIp shall support the Fully Qualified Domain Name
Option for Dynamic Host Configuration Protocol for IPv4 Client requirements as
defined in IETF RFC 4702 (The Dynamic Host Configuration Protocol for IPv4
(DHCPv4) Client Fully Qualified Domain Name (FQDN) Option). No DNS shall be
supported. Only section 2 The Client FQDN Option and section 3 DHCP Client
Behavior shall be supported. Sub-Section 3.2, 3.3, 3.5 shall not be supported.⌋()

7.5.5.2 Dynamic Host Configuration Protocol (DHCPv6)


[SWS_TCPIP_00166]⌈ The TcpIp shall support the client part of the Dynamic Host
Configuration Protocol for IPv6 (DHCPv6) which enables DHCP servers to pass
configuration parameters such as IPv6 network addresses to IPv6 nodes as defined
in IETF RFC 3315 (Dynamic Host Configuration Protocol for IPv6 (DHCPv6)).Due to
the fact that only the client functionality shall be supported, the following sections
shall not be supported:
• Relay Agent Behavior
• Server Behavior
• Section 12. Management of Temporary Addresses
• Section 21. Authentication of DHCP Messages
• Section 22.5. Identity Association for Temporary Addresses Option
• Section 22.11. Authentication Option
• Section 22.14. Rapid Commit Option
⌋()

[SWS_TCPIP_00167]⌈ The TcpIp shall support the Fully Qualified Domain Name
Option for Dynamic Host Configuration Protocol for IPv6 Client requirements as
defined in IETF RFC 4704 (The Dynamic Host Configuration Protocol for IPv6
(DHCPv6) Client Fully Qualified Domain Name (FQDN) Option). No DNS shall be
supported. Only section 4 DHCPv6 Client FQDN Option and section 5 DHCPv6

40 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Client Behavior shall be supported. Sub-Section 5.1, 5.2, 5.4 shall not be supported.⌋
()

7.6 Message Reception

[SWS_TCPIP_00169]⌈ The TcpIp IP-layer shall map received IP datagrams to an


entry in the local address table (TcpIpAddrId).
The local address table mapping is successfully if ALL of the following conditions are
fulfilled:
a) The receiving interface matches the interface assigned to the local address
table entry (EthIfCtrl).

b) The destination IP address contained in the IP header matches the currently


assigned IP address of the local address table entry.

All IP datagrams which cannot be mapped to an entry in the local address table shall
be silently discarded.
All successfully mapped IP datagrams shall be forwarded to the upper layer protocol.
⌋()

[SWS_TCPIP_00359] ⌈If IPsec is has been configured, all received IP datagrams


shall be mapped to a Security Policy entry and processed as below:
a) TCPIP_IPSEC_POLICY_PROTECT : The IP datagram is only forwarded to
the upper layer if it contains a valid Authentication header as per IETF RFC
4302. Otherwise the IP Datagram shall be dropped and optional callback
invoked.
b) TCPIP_IPSEC_POLICY_BYPASS : The IP datagram is forwarded to the
upper layer without any IPSec processing.
c) TCPIP_IPSEC_POLICY_DISCARD : The IP datagram shall be dropped
without any IPSec processing.⌋ ()

[SWS_TCPIP_00260]⌈ All IP datagrams mapped to an IPv6 entry in the local


address table, configured with the optional TcpIpLocalAddrIPv6ExtHeaderFilterRef
(ECUC_TcpIp_00200 : ), that contains at least one IPv6 extension header not listed
in the referenced TcpIpIpV6ConfigExtHeaderFilter (ECUC_TcpIp_00198 : ) shall be
silently discarded. If the Ipv6 entry in the local address table is not configured with
the optional TcpIpLocalAddrIPv6ExtHeaderFilterRef, then this frame shall be
processed. ⌋(SRS_Eth_00111)

[SWS_TCPIP_00170]⌈ The TcpIp UDP-layer shall map received UDP datagrams to


sockets based on the destination port as contained in the UDP protocol header and
the local address (TcpIpAddrId). The local address (TcpIpAddrId) matches if ANY of
the following conditions is fulfilled:
41 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

a) The socket is bound to the local address (TcpIpAddrId)

b) The socket local address uses the wildcard “ANY” AND the socket EthIfCtrl is
identical to the EthIfCtrl used in the local address (TcpIpAddrId)

c) The socket is bound to TCPIP_LOCALADDRID_ANY

The socket is bound to a local address and the EthIfCtrl is identical to the EthIfCtrl
used in the local address (TcpIpAddrId) and the received local address (TcpIpAddrId)
is a broadcast address.⌋()

[SWS_TCPIP_00171]⌈ For received UDP datagrams where the local address


(TcpIpAddrId) is a broadcast or multicast address, all matching sockets shall receive
the incoming message.⌋()

Note: A socket may either be explicitly bound to a local IP address by using


TcpIp_Bind() or implicitly as part of TcpIp_UdpTransmit() (if it is called without a
previous call of TcpIp_Bind()).

[SWS_TCPIP_00172]⌈ The TcpIp TCP-layer shall map received TCP datagrams to


sockets based on the destination port as contained in the TCP protocol header and
the local address (TcpIpAddrId). The local address (TcpIpAddrId) matches if ANY of
the following conditions is fulfilled:
a) The socket is bound to a unicast local address (TcpIpAddrId)

b) The socket local address uses the wildcard “ANY” AND the socket EthIfCtrl is
identical to the EthIfCtrl used in the local address (TcpIpAddrId)

c) The socket is bound to TCPIP_LOCALADDRID_ANY

⌋()

[SWS_TCPIP_00173]⌈ Sockets with established TCP connections shall match


source port, source IP address, destination port and destination IP address as
contained in the protocol headers additionally to the generic TCP mapping criteria
described in [SWS_TCPIP_00172].⌋()

[SWS_TCPIP_00174]⌈ Received TCP datagrams where the local address


(TcpIpAddrId) is a broadcast or multicast address, shall be silently discarded.⌋()

[SWS_TCPIP_00266]⌈ If the filtering of TCP options has been enabled on a socket


via TcpIp_ChangeParameter(), the TcpIp shall check received segments against the
allowed list of options (ECUC_TcpIp_00202 : TcpIpTcpConfigOptionFilter) and if it
contains at least one TCP option not listed the segment shall be silently discarded.⌋
(SRS_Eth_00111)
42 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00203]⌈ For receptions the TcpIp Module shall ignore the protocol
checksum fields of frames with respect to the configuration
of the Ethernet Controller according to the following list:
a) for IPv4 frames if IPv4 checksum verification in hardware is enabled, i.e.
EthCtrlEnableOffloadChecksumIPv4 is set to TRUE
b) for ICMP frames if ICMP checksum verification in hardware is enabled, i.e.
EthCtrlEnableOffloadChecksumICMP is set to TRUE
c) for TCP frames if TCP checksum verification in hardware is enabled, i.e.
EthCtrlEnableOffloadChecksumTCP is set to TRUE
d) for UDP frames if UDP checksum verification in hardware is enabled, i.e.
EthCtrlEnableOffloadChecksumUDP is set to TRUE.
In all other cases, the TcpIp module shall treat frames with mismatching checksums
according the related protocol specification.⌋()

[SWS_TCPIP_00279]⌈ For receptions the TcpIp Module shall accept UDP datagrams
containing a zero checksum only on sockets that have been configured accordingly
(i.e. TcpIp_ChangeParameter() has been called with
TCPIP_PARAMID_UDP_CHECKSUM set to FALSE).⌋(SRS_Eth_00019)

[SWS_TCPIP_00296] ⌈If the measurement data is enabled (see


TcpIpGetAndResetMeasurementDataApi), TcpIp shall increment the corresponding
measurement data whenever a received datagram is discarded.⌋ (SRS_Eth_00129)

The following guidelines are recommended for TLS data handling:


 If a TCP datagram is accepted and the socket is assigned to a TLS
connection, TCP should pass the data to TLS for further processing.

 If a received TLS application message was successfully processed and


verified, the data contents should be passed back to TCP to further provide it
to the configured upper layer. This provides full transparency of data reception
to the upper layer.

 If message reception is passed on to TLS but cannot be processed, because a


TLS connection has not yet been established or the message cannot be
authenticated and/or decrypted correctly, the message should be dropped.

 After TLS has processed a message and all data has been consumed
completey, TCP should be notified to release all related resources for this
message, regardless if the message was processed successfully or not.

43 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

7.7 Message Transmission

[SWS_TCPIP_00175]⌈ If data is transmitted using a socket which is bound to an IPv4


Unicast local address (TcpIpAddrId) the TcpIp shall use the IP address assigned to
the local address (TcpIpAddrId) as source IP address in the IP datagram header. The
IP datagram shall be transmitted using the EthIfCtrl the local address (TcpIpAddrId)
is mapped to.⌋()

[SWS_TCPIP_00176]⌈ If data is transmitted using an IPv4 socket which is bound to a


local address (TcpIpAddrId) using the wildcard “ANY”, then the TcpIp shall use the IP
address of the configured local address (TcpIpAddrId), which is of type IPv4 Unicast
and assigned to the same EthIfCtrl, as the bound local address (TcpIpAddrId) as
source IP address in the IP datagram header.⌋()

[SWS_TCPIP_00177]⌈ If data is transmitted using an IPv4 socket which is bound to


TCPIP_LOCALADDRID_ANY, then the TcpIp shall use the IP address of the
configured local address (TcpIpAddrId), which is of type IPv4 Unicast and assigned
to the EthIfCtrl in the same subnet as the destination IPv4 address as source IP
address in the IP datagram header. If no matching subnet is found the IPv4 Unicast
local address (TcpIpAddrId) of EthIfCtrl = 0 is selected.⌋()

[SWS_TCPIP_00178]⌈ If data is transmitted using an IPv4 UDP socket which is


bound to a local address (TcpIpAddrId) of type Multicast, then the TcpIp shall use the
IP address of the configured local address (TcpIpAddrId), which is of type IPv4
Unicast and assigned to the same EthIfCtrl, as the bound local address
(TcpIpAddrId) as source IP address in the IP datagram header.⌋()

[SWS_TCPIP_00179]⌈ If data is transmitted using an IPv4 UDP socket which is


bound to a local address (TcpIpAddrId) of type Broadcast, then the TcpIp shall use
the IP address of the configured local address (TcpIpAddrId), which is of type IPv4
Unicast and assigned to the same EthIfCtrl, as the bound local address
(TcpIpAddrId) as source IP address in the IP datagram header.⌋()

[SWS_TCPIP_00180]⌈ If data is transmitted using an IPv4 UDP socket which is not


bound, then the TcpIp uses the IP address of the configured local address
(TcpIpAddrId), which is of type IPv4 Unicast and assigned to the EthIfCtrl in the same
subnet as the destination IPv4 address as source IP address in the IP datagram
header. If no matching subnet is found the IPv4 Unicast local address (TcpIpAddrId)
of EthIfCtrl = 0 is selected.⌋()

[SWS_TCPIP_00181]⌈ If data is transmitted using a socket which is bound to an IPv6


Unicast local address (TcpIpAddrId) the TcpIp shall use the IP address assigned to
local address (TcpIpAddrId) as source IP address in the IP datagram header. The IP

44 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

datagram shall be transmitted using the EthIfCtrl the local address (TcpIpAddrId) is
mapped to.⌋()

[SWS_TCPIP_00182]⌈ If data is transmitted using an IPv6 socket which is bound to a


local address (TcpIpAddrId) using the wildcard “ANY”, the TcpIp shall select the
source IP address of the IPv6 header according to the source address selection
algorithm specified in section 5 of IETF RFC 6724 (Default Address Selection for
IPv6). The selection shall be limited to the configured local addresses (TcpIpAddrId)
on the same EthIfCtrl as the bound local address (TcpIpAddrId) only.⌋()

[SWS_TCPIP_00183]⌈ If data is transmitted using an IPv6 socket which is bound to


TCPIP_LOCALADDRID_ANY, the TcpIp shall select the interface that has a local
address (TcpIpAddrId) which uses the same network prefix as the destination
address. If no matching interface is found EthIfCtrl = 0 is selected. The TcpIp shall
select the source IP address of the IPv6 header according to the source address
selection algorithm specified in section 5 of IETF RFC 6724 (Default Address
Selection for IPv6).⌋()

[SWS_TCPIP_00184]⌈ If data is transmitted using an IPv6 UDP socket which is


bound to a local address (TcpIpAddrId) of type Multicast, the TcpIp - shall select the
source IP address of the IPv6 header according to the source address selection
algorithm specified in section 5 of IETF RFC 6724 (Default Address Selection for
IPv6). The selection shall be limited to the configured local addresses (TcpIpAddrId)
on the same EthIfCtrl as the bound local address (TcpIpAddrId) only.⌋()

[SWS_TCPIP_00185]⌈ If data is transmitted using an IPv6 UDP socket which is not


bound, the TcpIp shall select the interface that has a local address (TcpIpAddrId)
which uses the same network prefix as the destination address. If no matching
interface is found EthIfCtrl = 0 is selected. The TcpIp shall select the source IP
address of the IPv6 header according to the source address selection algorithm
specified in section 5 of IETF RFC 6724 (Default Address Selection for IPv6).⌋()

[SWS_TCPIP_00101]⌈ The TcpIp shall choose the correct next hop for each
datagram it sends according to IETF RFC 1122, section 3.3.1.1. (IPv4) and IETF
RFC4861 section 5.2. Conceptual Sending Algorithm (IPv6).⌋()

[SWS_TCPIP_00131]⌈ TcpIp shall always call EthIf_Transmit() with parameter


TxConfirmation set to FALSE.⌋()

[SWS_TCPIP_00191]⌈ If the parameter TcpIpArpPacketQueueEnabled is set to


TRUE and an IPv4 packet shall be transmitted to a remote host but the related link
layer address does not exist in the ARP table, the TcpIp shall start the address

45 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

resolution and queue this packet according to IETF RFC 1122, section 2.3.2.2 and
accept the transmission request with E_OK.⌋()

[SWS_TCPIP_00192]⌈ If the parameter TcpIpArpPacketQueueEnabled is set to


FALSE and an IPv4 packet shall be transmitted to a remote host but the related link
layer address does not exist in the ARP table, the TcpIp shall start the address
resolution but reject the transmission request with E_NOT_OK.⌋()

[SWS_TCPIP_00193]⌈ If the parameter TcpIpNdpPacketQueueEnabled is set to


TRUE and an IPv6 packet shall be transmitted to a remote host but the related link
layer address does not exist in the Neighbor Cache, the TcpIp shall start the address
resolution and queue this packet according to IETF RFC 4861, section 7.2.2 and
accept the transmission request with E_OK.⌋()

[SWS_TCPIP_00194]⌈ If the parameter TcpIpNdpPacketQueueEnabled is set to


FALSE and an IPv6 packet shall be transmitted to a remote host but the related link
layer address does not exist in the Neighbor Cache, the TcpIp shall start the address
resolution but reject the transmission request with E_NOT_OK.⌋()

[SWS_TCPIP_00202]⌈ After the maximum retries configured via


ECUC_TcpIp_00069 are transmitted, the timer according to
TcpIpTcpRetransmissionTimeout shall be restarted the last time before the TCP
connection is closed.⌋()

[SWS_TCPIP_00204]⌈ For transmissions the TcpIp Module shall skip the calculation
of the protocol checksums and fill the field with the
value 0 for frames with respect to the configuration of the Ethernet Controller
according the following list:
a) for IPv4 frames if IPv4 checksum calculation in hardware is enabled, i.e.
EthCtrlEnableOffloadChecksumIPv4 is set to TRUE
b) for not fragmented ICMP frames if ICMP checksum calculation in hardware is
enabled, EthCtrlEnableOffloadChecksumICMP is set to TRUE
c) for TCP frames if TCP checksum calculation in hardware is enabled,
EthCtrlEnableOffloadChecksumTCP is set to TRUE
d) for not fragmented UDP frames if UDP checksum calculation in hardware is
enabled, EthCtrlEnableOffloadChecksumUDP is set to TRUE.
In all other cases, the TcpIp module shall calculate the checksum according the
related protocol specification.⌋()

[SWS_TCPIP_00280]⌈ For transmissions the TcpIp Module shall skip the calculation
of the UDP protocol checksum and use the value zero instead, on sockets that have
been configured accordingly (i.e. TcpIp_ChangeParameter() has been called with
TCPIP_PARAMID_UDP_CHECKSUM set to FALSE).⌋(SRS_Eth_00019)

46 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00267]⌈ Per default or if TcpIp_ChangeParameter() with ParameterId


set to TCPIP_PARAMID_PATHMTU_ENABLE and the value set to TRUE has been
called for a socket, the maximum size for outbound datagrams from this socket shall
be determined by the Path MTU discovery.⌋(SRS_Eth_00097)

[SWS_TCPIP_00268]⌈ If TcpIp_ChangeParameter() with ParameterId set to


TCPIP_PARAMID_PATHMTU_ENABLE and the value set to FALSE has been called
for a socket, the maximum size for outbound datagrams from this socket is be
determined by the static configuration.⌋(SRS_Eth_00097)

[SWS_TCPIP_00320] ⌈If transmission is requested from upper layer to TCP and the
connection is configured for TLS but the handshake has not yet been started or
completed, the message transmission request shall return E_NOT_OK.
⌋()

[SWS_TCPIP_00360] ⌈If IPSec is has been configured, each IP datagram to be sent


by TcpIp shall be mapped to a Security Policy entry and processed as following:
a) TCPIP_IPSEC_POLICY_PROTECT : Authentication header as per IETF RFC
4302 shall be inserted after the IP header.
b) TCPIP_IPSEC_POLICY_BYPASS : The IP datagram is transmitted without
any IPSec processing.
c) TCPIP_IPSEC_POLICY_DISCARD : The IP datagram shall be dropped.⌋()

7.8 TCP/IP Stack state handling

[SWS_TCPIP_00083]⌈ The TcpIp module shall maintain a separate state for each
EthIf controller used by the TcpIp module, store the latest state request and
distinguish at least the following states: TCPIP_STATE_OFFLINE,
TCPIP_STATE_STARTUP, TCPIP_STATE_ONLINE, TCPIP_STATE_ONHOLD,
and TCPIP_STATE_SHUTDOWN.⌋()

[SWS_TCPIP_00136]⌈ The TcpIp module shall initiate according actions to achieve


the requested state if the stored state request is not the active state.⌋()

[SWS_TCPIP_00084]⌈ After each transition the TcpIp module shall report the new
state to EthSM via EthSM_TcpIpModeIndication().⌋()

[SWS_TCPIP_00075]⌈ If TCPIP_STATE_ONLINE is requested for an EthIf controller


and the current state is TCPIP_STATE_OFFLINE for that EthIf controller, the TcpIp
module shall

47 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

(a) enable all IP address assignments according to the configured assignment


methods (TcpIpAssignmentMethod) and triggers (TcpIpAssignmentTrigger) for
that EthIf controller. (Note: If the assignment trigger is configured to
TCPIP_MANUAL no assignment is actually performed but initiation by the upper
layer enabled) and
(b) enter the state TCPIP_STATE_STARTUP for the EthIf controller.⌋()

[SWS_TCPIP_00127]⌈ In case multiple IP address assignment methods are


configured and a new address from an assignment method with a higher priority (1 is
highest) becomes available, TcpIp shall use the new IP address and release the IP
address previously assigned by an assignment method with a lower priority.⌋()

[SWS_TCPIP_00088]⌈ If TCPIP_STATE_OFFLINE is requested for an EthIf


controller and the current state is TCPIP_STATE_STARTUP for that EthIf controller,
the TcpIp module shall
(a) abort all ongoing IP address assignment actions appropriate and
(b) enter the state TCPIP_STATE_OFFLINE for the EthIf controller.⌋()

[SWS_TCPIP_00085]⌈ If at least one IP address has been successfully assigned to


an EthIf controller and the current state is TCPIP_STATE_STARTUP for that EthIf
controller, the TcpIp module shall enter the state TCPIP_STATE_ONLINE for the
EthIf controller.⌋()

Note: After successfully assignment of an IP address to the EthIf controller the upper
layer module will be notified via Up_LocalIpAddrAssignmentChg() with State
TCPIP_IPADDR_STATE_ASSIGNED.

[SWS_TCPIP_00076]⌈ If TCPIP_STATE_ONHOLD is requested for an EthIf


controller and the current state is TCPIP_STATE_ONLINE for that EthIf controller,
the TcpIp module shall
(a) notify the upper layer via Up_LocalIpAddrAssignmentChg() with State
TCPIP_IPADDR_STATE_ONHOLD for all assigned IP addresses of the
related EthIf controller, and
(b) deactivate the communication within the TcpIp module for the related EthIf
controller, and
(c) enter the state TCPIP_STATE_ONHOLD for the EthIf controller.⌋()

[SWS_TCPIP_00086]⌈ If TCPIP_STATE_ONLINE is requested for an EthIf controller


and the current state is TCPIP_STATE_ONHOLD for that EthIf controller, the TcpIp
module shall
(a) reactivate the communication within the TcpIp module for the related EthIf
controller,
(b) call Up_LocalIpAddrAssignmentChg() with State
TCPIP_IPADDR_STATE_ASSIGNED for all assigned IP addresses of the
related EthIf controller, and
48 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

(c) enter the state TCPIP_STATE_ONLINE for the EthIf controller.⌋()

[SWS_TCPIP_00077]⌈ If TCPIP_STATE_OFFLINE is requested or all assigned IP


address have been released for an EthIf controller and the current state is
TCPIP_STATE_ONLINE or TCPIP_STATE_ONHOLD for that EthIf controller, the
TcpIp module shall
(a) call Up_LocalIpAddrAssignmentChg() with State
TCPIP_IPADDR_STATE_UNASSIGNED for all assigned IP addresses of the
related EthIf controller,
(b) deactivate the communication within the TcpIp module for the related EthIf
controller,
(c) release related resources, i.e. any socket using the EthIf controller shall be
closed and thereafter any IP address assigned to the EthIf controller shall be
unassigned,
(d) in case the no EthIf controller is assigned any more, all unbound sockets shall
be released as well, and
(e) enter the state TCPIP_STATE_SHUTDOWN for the EthIf controller.⌋()

[SWS_TCPIP_00087]⌈ If the current state of an EthIf controller is


TCPIP_STATE_SHUTDOWN and all related resources have been released, the
TcpIp module shall enter the state TCPIP_STATE_OFFLINE for the EthIf controller.⌋
()

[SWS_TCPIP_00094]⌈ The TcpIp module shall only accept new TCP connections if
the related EthIf controller is in state TCPIP_STATE_ONLINE.⌋()

[SWS_TCPIP_00144]⌈ The TcpIp module shall indicate events related to sockets to


the upper layer module by using the Up_TcpIpEvent API and the following events:
TCPIP_TCP_RESET, TCPIP_TCP_CLOSED, TCPIP_TCP_FIN_RECEIVED and
TCPIP_UDP_CLOSED.⌋()

7.9 Security Events


[SWS_TCPIP_00361]⌈ If security event reporting has been enabled for the TcpIp
module ( TcpIpEnableSecurityEventReporting = true) the respective security events
shall be reported to the IdsM via the interfaces defined in
AUTOSAR_SWS_BSWGeneral.⌋(RS_Ids_00810)

The following table lists the security events which are standardized for the TcpIp
module together with their trigger conditions.

[SWS_TcpIp_00362]⌈
Name Description ID

49 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TCPIP_SEV_ARP_IP_ADDR_ Received local IP address in ARP reply for different


10
CONFLICT MAC.

TCPIP_SEV_DROP_INV_PORT_ Dropped TCP packet because of invalid destination


11
TCP TCP-Port.

TCPIP_SEV_DROP_INV_PORT_ Dropped UDP packet because of invalid destination


12
UDP UDP-Port.

TCPIP_SEV_DROP_INV_IPV4_
Dropped datagram because of invalid IPV4 address. 13
ADDR

TCPIP_SEV_DROP_INV_IPV6_
Dropped datagram because of invalid IPV6 address. 14
ADDR

⌋()

7.10 Error classification


This section describes how the TcpIp module has to manage the error classes that
may occur during the life cycle of this basic software.

7.10.1 Development Errors

The following table lists development error IDs the TcpIp shall use for reporting of
development errors to the Default Error Tracer:

[SWS_TCPIP_00042]⌈
Type of error Related error code Error value

API service called before initializing the module TCPIP_E_UNINIT 0x01

API service called with NULL pointer TCPIP_E_PARAM_POINTER 0x02

Invalid argument TCPIP_E_INV_ARG 0x03

No buffer space available TCPIP_E_NOBUFS 0x04

Message too long TCPIP_E_MSGSIZE 0x07

Protocol wrong type for socket TCPIP_E_PROTOTYPE 0x08

Address already in use TCPIP_E_ADDRINUSE 0x09

Can't assign requested address TCPIP_E_ADDRNOTAVAIL 0x0A

Socket is already connected TCPIP_E_ISCONN 0x0B

Socket is not connected TCPIP_E_NOTCONN 0x0C

Protocol not available TCPIP_E_NOPROTOOPT 0x0D

Address family not supported by protocol family TCPIP_E_AFNOSUPPORT 0x0E


50 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Invalid configuration set selection TCPIP_E_INIT_FAILED 0x0F

⌋()

7.10.2 Runtime Errors

The following table lists runtime error IDs the TcpIp shall use for reporting of runtime
errors to the Default Error Tracer:

[SWS_TCPIP_00255]⌈
Type of error Related error code Error value

Operation timed out TCPIP_E_TIMEDOUT 0x01

Connection refused TCPIP_E_CONNREFUSED 0x02

No route to host TCPIP_E_HOSTUNREACH 0x03

Path does not support frame size TCPIP_E_PACKETTOBIG 0x04

Duplicate IP Address detected TCPIP_E_DADCONFLICT 0x05

⌋(SRS_Eth_00112)

[SWS_TCPIP_00256]⌈ The TcpIp shall report the runtime error by calling


Det_ReportRuntimeError(TCPIP_E_TIMEDOUT) if one of the following conditions
applies:
(a) TcpIp module has sent a SYN to establish a connection but did not receive any
response.
(b) An established idle TCP connection is closed because the peer is no longer
present, i.e. keep-alive timer runs out and peer does not respond to keep-alive
probes according to IETF RFC 1122 chapter 4.2.3.6 TCP Keep-Alives.
(c) An established TCP connection is closed because the peer does not respond,
i.e. the maximum number of retransmissions has been sent without
acknowledgement, according to [SWS_TCPIP_00202].⌋(SRS_Eth_00112)

[SWS_TCPIP_00257]⌈ The TcpIp shall report the runtime error by calling


Det_ReportRuntimeError(TCPIP_E_CONNREFUSED) if one of the following
conditions applies:
a) An ICMP message Destination Unreachable/Protocol Unreachable is received
because the peer doesn't provide a service at the requested protocol.
b) An ICMP message Destination Unreachable/Port Unreachable is received
because the peer doesn't provide a service at the requested port.⌋
(SRS_Eth_00112)

[SWS_TCPIP_00258]⌈ The TcpIp shall report the runtime error by calling


Det_ReportRuntimeError(TCPIP_E_HOSTUNREACH) if one of the following
conditions applies:
51 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

a) An ICMP message Destination Unreachable is received because the network or


host is unreachable or there is no route to the destination.⌋(SRS_Eth_00112)

[SWS_TCPIP_00259]⌈ The TcpIp shall report the runtime error by calling


Det_ReportRuntimeError(TCPIP_E_PACKETTOBIG) if one of the following
conditions applies:
a) An ICMP message Destination Unreachable/ Fragmentation needed but DF bit
set is received because the network can't forward an oversized frame since the
DF (don't fragment) Flag is set.⌋(SRS_Eth_00112)

[SWS_TCPIP_00282]⌈ The TcpIp shall report the runtime error by calling


Det_ReportRuntimeError(TCPIP_E_DADCONFLICT) if one of the following
conditions applies:
a) A duplicate IP address was found by the Duplicate Address Detection (DAD)
algorithm.⌋(SRS_Eth_00091, SRS_BSW_00452)

7.10.3 Transient Faults

There are no transient faults.

7.10.4 Production Errors

There are no production errors.

7.10.5 Extended Production Errors

There are no extended production errors.

7.11 Version checking


For details refer to the chapter 5.1.8 “Version Check” in SWS_BSWGeneral.

52 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

8 API specification

8.1 Imported types


The following types shall be imported by the TcpIp from the modules given:

[SWS_TCPIP_00008]⌈
Module Header File Imported Type

ComStack_Types ComStack_Types.h BufReq_ReturnType

Rte_Csm_Type.h Crypto_OperationModeType
Csm
Rte_Csm_Type.h Crypto_VerifyResultType

Rte_Dem_Type.h Dem_EventIdType
Dem
Rte_Dem_Type.h Dem_EventStatusType

Eth_GeneralTypes.h Eth_BufIdxType

Eth Eth_GeneralTypes.h Eth_FilterActionType

Eth_GeneralTypes.h Eth_FrameType

IdsM IdsM_Types.h IdsM_SecurityEventIdType

KeyM.h KeyM_CertDataType
KeyM
Rte_KeyM_Type.h KeyM_CertificateIdType

Std_Types.h Std_ReturnType
Std
Std_Types.h Std_VersionInfoType

⌋()

8.2 Type definitions


[SWS_TCPIP_00067]⌈
Name TcpIp_ConfigType

Kind Structure

implementation specific

Type --
Elements
The content of the configuration data structure is implementation
Comment
specific.

Description Configuration data structure of the TcpIp module.

Available
TcpIp.h
via
53 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

⌋()

[SWS_TCPIP_00009]⌈
Name TcpIp_DomainType

Kind Type

Derived from uint16

TCPIP_AF_INET 0x02 Use IPv4


Range
TCPIP_AF_INET6 0x1c Use IPv6

Description TcpIp address families.

Available via TcpIp.h

⌋()

[SWS_TCPIP_00010]⌈
Name TcpIp_ProtocolType

Kind Enumeration

TCPIP_IPPROTO_TCP 0x06 Use TCP


Range
TCPIP_IPPROTO_UDP 0x11 Use UDP

Description Protocol type used by a socket.

Available via TcpIp.h

⌋()

[SWS_TCPIP_00012]⌈
Name TcpIp_SockAddrType

Kind Structure

domain

Elements Type TcpIp_DomainType

Comment This is the code for the address format of this address

Generic structure used by APIs to specify an IP address. (A specific address type can
Description
be derived from this structure via a cast to the specific struct type.)

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_00013]⌈
54 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Name TcpIp_SockAddrInetType

Kind Structure

domain

Type TcpIp_DomainType

Comment This is the code for the address format of this address

port

Type uint16
Elements
Comment port number

addr

Type Array of uint32

Size 1

Comment IPv4 address in network byte order

This structure defines an IPv4 address type which can be derived from the generic
Description
address structure via cast.

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_00014]⌈
Name TcpIp_SockAddrInet6Type

Kind Structure

domain

Type TcpIp_DomainType

Comment This is the code for the address format of this address

port

Type uint16
Elements
Comment port number

addr

Type Array of uint32

Size 4

Comment IPv6 address in network byte order

This structure defines a IPv6 address type which can be derived from the generic
Description
address structure via cast.

55 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_00030]⌈
Name TcpIp_LocalAddrIdType

Kind Type

Derived
uint8
from

Address identification type for unique identification of a local IP address and EthIf
Description
Controller configured in the TcpIp module.

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_00038]⌈
Name TcpIp_SocketIdType

Kind Type

Basetype Variation
Derived
uint16 --
from
uint8 --

Socket identifier type for unique identification of a TcpIp stack socket. TCPIP_
Description
SOCKETID_INVALID shall specify an invalid socket handle.

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_00073]⌈
Name TcpIp_StateType

Kind Enumeration

TCPIP_STATE_ TCP/IP stack state for a specific EthIf controller is ONLINE,


--
ONLINE i.e. communication via at least one IP address is possible.

TCPIP_STATE_ TCP/IP stack state for a specific EthIf controller is ONHOLD,


--
ONHOLD i.e. no communication is currently possible (e.g. link down).
Range
TCPIP_STATE_ TCP/IP stack state for a specific EthIf controller is OFFLINE,
--
OFFLINE i.e. no communication is possible.

TCPIP_STATE_ -- TCP/IP stack state for a specific EthIf controller is STARTUP,


56 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

STARTUP i.e. IP address assignment in progress or ready for manual


start, communication is currently not possible.

TCP/IP stack state for a specific EthIf controller is


TCPIP_STATE_
-- SHUTDOWN, i.e. release of resources using the EthIf
SHUTDOWN
controller, release of IP address assignment.

Description Specifies the TcpIp state for a specific EthIf controller.

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_00082]⌈
Name TcpIp_IpAddrStateType

Kind Enumeration

TCPIP_IPADDR_STATE_
-- local IP address is assigned
ASSIGNED

TCPIP_IPADDR_STATE_ local IP address is assigned, but cannot be used


Range --
ONHOLD as the network is not active

TCPIP_IPADDR_STATE_
-- local IP address is unassigned
UNASSIGNED

Description Specifies the state of local IP address assignment

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_00031]⌈
Name TcpIp_EventType

Kind Enumeration

TCP connection was reset, TCP socket and all


TCPIP_TCP_RESET 0x01
related resources have been released.

TCP connection was closed successfully, TCP


TCPIP_TCP_CLOSED 0x02 socket and all related resources have been
released.

TCPIP_TCP_FIN_ A FIN signal was received on the TCP


Range 0x03
RECEIVED connection, TCP socket is still valid.

UDP socket and all related resources have been


TCPIP_UDP_CLOSED 0x04
released.

TCPIP_TLS_
TLS handshake successfully established, TLS
HANDSHAKE_ 0x05
connection available.
SUCCEEDED

57 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description Events reported by TcpIp.

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_00065]⌈
Name TcpIp_IpAddrAssignmentType

Kind Enumeration

TCPIP_IPADDR_
-- Static configured IPv4/IPv6 address.
ASSIGNMENT_STATIC

TCPIP_IPADDR_
Linklocal IPv4/IPv6 address assignment using
ASSIGNMENT_LINKLOCAL_ --
DoIP parameters.
DOIP

TCPIP_IPADDR_ Dynamic configured IPv4/IPv6 address by


--
ASSIGNMENT_DHCP DHCP.
Range
TCPIP_IPADDR_
-- Linklocal IPv4/IPv6 address assignment.
ASSIGNMENT_LINKLOCAL

TCPIP_IPADDR_
Dynamic configured IPv4/IPv6 address by
ASSIGNMENT_IPV6_ --
Router Advertisement.
ROUTER

All configured TcpIpAssignmentMethods with


TCPIP_IPADDR_
-- TcpIpAssignmentTrigger set to TCPIP_
ASSIGNMENT_ALL
MANUAL

Description Specification of IPv4/IPv6 address assignment policy.

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_00066]⌈
Name TcpIp_ReturnType

Kind Enumeration

TCPIP_E_OK -- operation completed successfully.

TCPIP_E_NOT_OK -- operation failed.


Range
TCPIP_E_PHYS_ADDR_ operation failed because of an ARP/NDP cache
--
MISS miss.

Description TcpIp specific return type.

Available
TcpIp.h
via

58 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

⌋()

[SWS_TCPIP_00126]⌈
Name TcpIp_ParamIdType

Kind Type

Derived
uint8
from

TCPIP_PARAMID_TCP_ Specifies the maximum TCP receive window for


0x00
RXWND_MAX the socket. [uint16]

TCPIP_PARAMID_ Specifies the frame priority for outgoing frames on


0x01
FRAMEPRIO the socket. [uint8]

Specifies if the Nagle Algorithm according to IETF


TCPIP_PARAMID_TCP_
0x02 RFC 1122 (chapter 4.2.3.4 When to Send Data) is
NAGLE
enabled or not. [boolean]

TCPIP_PARAMID_TCP_ Specifies if TCP Keep Alive Probes are sent on


0x03
KEEPALIVE the socket connection. [boolean]

Specifies the time to live value for outgoing frames


on the socket. For IPv6 this parameter specifies
TCPIP_PARAMID_TTL 0x04
the value of the HopLimit field used in the IPv6
header. [uint8]

Specifies the time in [s] between the last data


TCPIP_PARAMID_TCP_
0x05 packet sent (simple ACKs are not considered
KEEPALIVE_TIME
data) and the first keepalive probe. [uint32]

TCPIP_PARAMID_TCP_
Specifies the maximum number of times that a
KEEPALIVE_PROBES_ 0x06
Range keepalive probe is retransmitted. [uint16]
MAX

TCPIP_PARAMID_TCP_ Specifies the interval in [s] between subsequent


0x07
KEEPALIVE_INTERVAL keepalive probes. [uint32]

TCPIP_PARAMID_TCP_ Specifies which TCP option filter shall be applied


0x08
OPTIONFILTER on the related socket. [uint8]

TCPIP_PARAMID_ Specifies if the Path MTU Discovery shall be


0x09
PATHMTU_ENABLE performed on the related socket. [boolean]

TCPIP_PARAMID_ The 20-bit Flow Label according to IETF RFC


0x0a
FLOWLABEL 6437. [uint32]

The 6-bit Differentiated Service Code Point


TCPIP_PARAMID_DSCP 0x0b
according to IETF RFC 2474. [uint8]

0x0c Specifies if UDP checksum handling shall be


TCPIP_PARAMID_UDP_
0x0c enabled (TRUE) or skipped (FALSE) on the
CHECKSUM
related socket. [boolean]

TCPIP_PARAMID_TLS_
0x0d is used to assign a TLS connection
CONNECTION_ 0x0d
reference to a TCP socket.
ASSIGNMENT

59 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TCPIP_PARAMID_ Start of vendor specific range of parameter IDs.


0x80
VENDOR_SPECIFIC [vendor specific]

Description Type for the specification of all supported Parameter IDs and their data types.

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_00133]⌈
Name TcpIpIpAddrWildcardType

Kind Type

Derived from uint32

Range TCPIP_IPADDR_ANY implementation specific defines the value used as wildcard

Description IP address wildcard.

Available via TcpIp.h

⌋()

[SWS_TCPIP_00132]⌈
Name TcpIpIp6AddrWildcardType

Kind Type

Derived
uint32
from

TCPIP_IP6ADDR_ implementation defines the value used as wildcard for all


Range
ANY specific IP6 address parts

Description IP6 address wildcard.

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_00134]⌈
Name TcpIpPortWildcardType

Kind Type

Derived from uint16

Range TCPIP_PORT_ANY -- Zero (0) is used as wildcard

Description Port wildcard.

Available via TcpIp.h

60 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

⌋()

[SWS_TCPIP_00135]⌈
Name TcpIpLocalAddrIdWildcardType

Kind Type

Derived
TcpIp_LocalAddrIdType
from

TCPIP_LOCALADDRID_ implementation defines the value used as


Range
ANY specific wildcard

Description LocalAddrId wildcard.

Available via TcpIp.h

⌋()

[SWS_TCPIP_91004]⌈
Name TcpIp_ArpCacheEntryType

Kind Structure

InetAddr

Type Array of uint32

Size 1

Comment IPv4 address in network byte order

PhysAddr

Type Array of uint8


Elements
Size 6

Comment physical address in network byte order

State

Type uint8

state of the address entry (TCPIP_ARP_ENTRY_STATIC, TCPIP_ARP_


Comment
ENTRY_VALID, TCPIP_ARP_ENTRY_STALE)

Description TcpIp_ArpCacheEntries elements type

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_91003]⌈
61 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Name TcpIp_NdpCacheEntryType

Kind Structure

Inet6Addr

Type Array of uint32

Size 4

Comment IPv6 address in network byte order

PhysAddr

Type Array of uint8


Elements
Size 6

Comment physical address in network byte order

State

Type uint8

state of the address entry (TCPIP_NDP_ENTRY_STATIC, TCPIP_NDP_


Comment
ENTRY_VALID, TCPIP_NDP_ENTRY_STALE)

Description TcpIp_NdpCacheEntries elements type

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_91010]⌈
Name TcpIp_MeasurementIdxType

Kind Type

Derived
uint8
from

TCPIP_MEAS_DROP_ Measurement index of dropped PDUs caused by


0x01
TCP invalid destination TCP-Port

TCPIP_MEAS_DROP_ Measurement index of dropped PDUs caused by


0x02
UDP invalid destination UDP-Port

TCPIP_MEAS_DROP_ Measurement index of dropped datagrams


0x03
IPV4 caused by invalid IPv4 address
Range
TCPIP_MEAS_DROP_ Measurement index of dropped datagrams
0x04
IPV6 caused by invalid IPv6 address

TCPIP_MEAS_ 0x05-
reserved by AUTOSAR
RESERVED_1 0x7F

TCPIP_MEAS_ 0x80-0x
Vendor specific range
RESERVED_2 EF

62 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TCPIP_MEAS_ 0xF0-0x
reserved by AUTOSAR (future use)
RESERVED_3 FE

TCPIP_MEAS_ALL 0xFF represents all measurement indexes

Description Index to select specific measurement data

Available
TcpIp.h
via

⌋()

[SWS_TCPIP_91011]⌈
Name TcpIp_TlsConnectionIdType

Kind Type

Basetype Variation
Derived
uint16 --
from
uint8 --

TLS connection identifier type for unique identification of a TLS connection. TCPIP_
Description
TLSCONNECTIONID_INVALID shall specify an invalid TLS connection handle.

Available
TcpIp.h
via

⌋()

8.3 Function definitions


This is a list of functions provided for upper layer modules.

8.3.1 General

8.3.1.1 TcpIp_Init
[SWS_TCPIP_00002]⌈
Service
TcpIp_Init
Name

void TcpIp_Init (
Syntax const TcpIp_ConfigType* ConfigPtr
)

Service ID
0x01
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

63 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Parameters
ConfigPtr Pointer to the configuration data of the TcpIp module
(in)

Parameters
None
(inout)

Parameters
None
(out)

Return value void None

This service initializes the TCP/IP Stack. TcpIp_Init may not block the start-up
Description process for an indefinite amount of time. Caveats: The call of this service is
mandatory before using the TcpIp instance for further processing.

Available via TcpIp.h

⌋()

8.3.1.2 TcpIp_GetVersionInfo
[SWS_TCPIP_00004]⌈
Service Name TcpIp_GetVersionInfo

void TcpIp_GetVersionInfo (
Syntax Std_VersionInfoType* versioninfo
)

Service ID [hex] 0x02

Sync/Async Synchronous

Reentrancy Reentrant

Parameters (in) None

Parameters (inout) None

Parameters (out) versioninfo Pointer to where to store the version information of this module.

Return value None

Description Returns the version information.

Available via TcpIp.h

⌋()

[SWS_TCPIP_00005]⌈ The function TcpIp_GetVersionInfo shall return the version


information of this module. The version information includes:
- Module Id
- Vendor Id
- Vendor specific version numbers (BSW00407).
⌋()

64 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00006]⌈ The function TcpIp_GetVersionInfo shall be pre compile time


configurable On/Off by the configuration parameter: TCPIP_VERSION_INFO_API⌋()

8.3.2 Core Communication Control

8.3.2.1 TcpIp_Close
[SWS_TCPIP_00017]⌈
Service
TcpIp_Close
Name

Std_ReturnType TcpIp_Close (
TcpIp_SocketIdType SocketId,
Syntax
boolean Abort
)

Service ID
0x04
[hex]

Sync/Async Asynchronous

Reentrancy Reentrant for different SocketIds. Non reentrant for the same SocketId.

SocketId Socket handle identifying the local socket resource.

Parameters TRUE: connection will immediately be terminated by sending a RST-


(in) Segment and releasing all related resources. FALSE: connection will be
Abort
terminated after performing a regular connection termination handshake
and releasing all related resources.

Parameters
None
(inout)

Parameters
None
(out)

Std_-
E_OK: The request has been accepted
Return value Return-
E_NOT_OK: The request has not been accepted.
Type

By this API service the TCP/IP stack is requested to close the socket and release all
Description
related resources.

Available via TcpIp.h

⌋()
[SWS_TCPIP_00109]⌈ The service TcpIp_Close() shall perform the following actions
for the socket specified by SocketId in case it is a TCP socket:
(a) if the connection is active and
(a1) abort = FALSE: the connection shall be terminated after performing a regular
connection termination handshake and releasing all related resources.
(a2) abort = TRUE: connection shall immediately be terminated by sending a RST-
Segment and releasing all related resources.
65 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

(b) if the socket is in the Listen state, the Listen state shall be left immediately and
related resources shall be released.⌋()

[SWS_TCPIP_00110]⌈ The service TcpIp_Close() shall release all related resources


immediately for the socket specified by SocketId in case it is a UDP socket .⌋()

Note: The upper layer will be notified via Up_TcpIpEvent(TCPIP_TCP_CLOSED,


TCPIP_TCP_RESET or TCPIP_UDP_CLOSED) after the socket and all related
resources have been released. After this call the SocketId is invalid until allocated
again with TcpIp_GetSocket().

8.3.2.2 TcpIp_Bind
[SWS_TCPIP_00015]⌈
Service
TcpIp_Bind
Name

Std_ReturnType TcpIp_Bind (
TcpIp_SocketIdType SocketId,
Syntax TcpIp_LocalAddrIdType LocalAddrId,
uint16* PortPtr
)

Service ID
0x05
[hex]

Sync/Async Synchronous

Reentrancy Reentrant for different SocketIds. Non reentrant for the same SocketId.

SocketId Socket identifier of the related local socket resource.

IP address identifier representing the local IP address and EthIf controller


to bind the socket to.
Note: to listen to all EthIf controller, TCPIP_LOCALADDRID_ANY has to
be specified as LocalAddrId.
Note: to listen on any IP addresss of a EthIf controller, the configuration
Parameters
parameter TcpIpStaticIpAddress referenced by LocalAddrId must be set
(in) Local
to "ANY". The remote IP address of an incoming packet has no effect
AddrId
then.
In case the socket shall be used as client socket, the IP address and Eth
If controller represented by LocalAddrId is used for transmission.
Note: for an automatic selection of the Local IP address and EthIf
Controller, TCPIP_LOCALADDRID_ANY has to be specified as Local
AddrId.

Pointer to memory where the local port to which the socket shall be
bound is specified. In case the parameter is specified as TCPIP_PORT_
Parameters
PortPtr ANY, the TCP/IP stack shall choose the local port automatically from the
(inout)
range 49152 to 65535 and shall update the parameter to the chosen
value.

Parameters
None
(out)

66 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Std_- Result of operation


Return value Return- E_OK The request has been accepted
Type E_NOT_OK The request has not been accepted (e.g. address in use)

By this API service the TCP/IP stack is requested to bind a UDP or TCP socket to a
Description
local resource.

Available via TcpIp.h

⌋()
[SWS_TCPIP_00111]⌈ The service TcpIp_Bind() shall bind the socket specified by
parameter SocketId to the local resource specified by parameters LocalAddrId and
PortPtr.⌋()

Note: Sockets that shall be switched in a listening state later on must be bound to a
local resource. Optionally this API can be used to specify the local IP address and
port used by later calls of TcpIp_TcpConnect() or TcpIp_UdpTransmit().

[SWS_TCPIP_00146]⌈ TcpIp_Bind() shall check if there is another socket already


bound to the same port, protocol and local address and if that is the case refuse the
request and return E_NOT_OK. If development error detection is enabled, the
service TcpIp_Bind() shall also raise the development error code
TCPIP_E_ADDRINUSE.⌋()

[SWS_TCPIP_00147]⌈ If development error detection is enabled: TcpIp_Bind()


shall check if the parameter LocalAddrId is valid. If the check fails,
TcpIp_Bind() shall refuse the request and raise the development error code
TCPIP_E_ADDRNOTAVAIL instead.⌋(SRS_BSW_00323)

[SWS_TCPIP_00254]⌈ TcpIp_Bind() shall check if the local address specified by


LocalAddrId is assigned and if that is not the case refuse the request and return
E_NOT_OK⌋(SRS_Eth_00045)

8.3.2.3 TcpIp_TcpConnect
[SWS_TCPIP_00022]⌈
Service Name TcpIp_TcpConnect

Std_ReturnType TcpIp_TcpConnect (
TcpIp_SocketIdType SocketId,
Syntax
const TcpIp_SockAddrType* RemoteAddrPtr
)

Service ID
0x06
[hex]

Sync/Async Asynchronous

Reentrancy Reentrant for different SocketIds. Non reentrant for the same SocketId.

67 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SocketId Socket identifier of the related local socket resource.


Parameters
(in) Remote
IP address and port of the remote host to connect to.
AddrPtr

Parameters
None
(inout)

Parameters
None
(out)

E_OK: The request has been accepted


Std_-
E_NOT_OK: The request has not been accepted, e.g. connection is
Return value Return-
already established or no route to destination specified by remote
Type
AddrPtr found.

By this API service the TCP/IP stack is requested to establish a TCP connection to
Description
the configured peer.

Available via TcpIp.h

⌋()
[SWS_TCPIP_00112]⌈ The service TcpIp_TcpConnect() shall establish a TCP
connection between the local socket specified by parameter SocketId and the remote
socket specified with parameter RemoteAddrPtr.⌋()

[SWS_TCPIP_00129]⌈ ⌈If development error detection is enabled and the parameter


RemoteAddrPtr equals NULL_PTR, the TcpIp_TcpConnect function shall raise the
development error code TCPIP_E_PARAM_POINTER.⌋()

8.3.2.4 TcpIp_TcpListen
[SWS_TCPIP_00023]⌈
Service Name TcpIp_TcpListen

Std_ReturnType TcpIp_TcpListen (
TcpIp_SocketIdType SocketId,
Syntax
uint16 MaxChannels
)

Service ID [hex] 0x07

Sync/Async Asynchronous

Reentrancy Reentrant for different SocketIds. Non reentrant for the same SocketId.

SocketId Socket identifier of the related local socket resource.


Parameters (in)
Max Maximum number of new parallel connections established on this
Channels listen connection.

Parameters
None
(inout)

68 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Parameters
None
(out)

E_OK: The request has been accepted


Std_Return-
Return value E_NOT_OK: The request has not been accepted, the socket is
Type
not configured to be a server socket.

By this API service the TCP/IP stack is requested to listen on the TCP socket
Description
specified by the socket identifier.

Available via TcpIp.h

⌋()
[SWS_TCPIP_00113]⌈ The service TcpIp_TcpListen() shall put the socket specified
by SocketId to the listen state (i.e. local socket is listening for incoming connections).
⌋()

[SWS_TCPIP_00114]⌈ TcpIp shall derive a separate socket from the listen socket to
establish a new connection from an incoming connection request on the listen socket
and limit the number of new parallel connections to the value specified by
MaxChannels.⌋()

8.3.2.5 TcpIp_TcpReceived
[SWS_TCPIP_00024]⌈
Service Name TcpIp_TcpReceived

Std_ReturnType TcpIp_TcpReceived (
TcpIp_SocketIdType SocketId,
Syntax
uint32 Length
)

Service ID [hex] 0x08

Sync/Async Asynchronous

Reentrancy Reentrant for different SocketIds. Non reentrant for the same SocketId.

SocketId Socket identifier of the related local socket resource.


Parameters (in)
Length Number of bytes finally consumed by the upper layer.

Parameters
None
(inout)

Parameters (out) None

E_OK: The request has been accepted


Return value Std_ReturnType
E_NOT_OK: The request has not been accepted

By this API service the reception of socket data is confirmed to the TCP/IP
Description
stack.

Available via TcpIp.h

69 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

⌋()
[SWS_TCPIP_00115]⌈ The service TcpIp_TcpReceived() shall increase the TCP
receive window of the socket specified by SocketId considering the number of finally
consumed bytes specified by Length.⌋()

8.3.2.6 TcpIp_RequestComMode

[SWS_TCPIP_00070]⌈
Service Name TcpIp_RequestComMode

Std_ReturnType TcpIp_RequestComMode (
uint8 CtrlIdx,
Syntax
TcpIp_StateType State
)

Service ID
0x09
[hex]

Sync/Async Asynchronous

Reentrancy Non Reentrant

EthIf controller index to identify the communication network where


CtrlIdx
Parameters the TcpIp state is requested.
(in)
State Requested TcpIp state.

Parameters
None
(inout)

Parameters
None
(out)

Std_Return- E_OK: Service accepted


Return value
Type E_NOT_OK: Service denied

By this API service the TCP/IP stack is requested to change the TcpIp state of the
Description
communication network identified by EthIf controller index.

Available via TcpIp.h

⌋()
[SWS_TCPIP_00071]⌈ If TCPIP_STATE_ONLINE is requested, the TcpIp module
shall initiate activation of the TcpIp communication on the related EthIf controller (e.g.
start IP-Address assignment according to the configured IP address assignment
policy for the EthIf controller).⌋()

[SWS_TCPIP_00072]⌈ If TCPIP_STATE_OFFLINE is requested, the TcpIp module


shall initiate deactivation of the TcpIp communication on the related EthIf controller
(e.g. close all sockets using the specified EthIf controller).⌋()
70 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00074]⌈ If TCPIP_STATE_ONHOLD is requested, the TcpIp module


shall set the TcpIp communication to on hold, i.e. new transmit requests shall not be
accepted, but sockets and assigned IP addresses shall be kept.⌋()

[SWS_TCPIP_00089]⌈ If TCPIP_STATE_STARTUP or TCPIP_STATE_SHUTDOWN


is requested as state the function TcpIp_RequestComMode shall abort with
E_NOT_OK and report TCPIP_E_INV_ARG if development error detection is
enabled.⌋()

Note: According to [SWS_TCPIP_00075] and [SWS_TCPIP_00077]


TCPIP_STATE_STARTUP or TCPIP_STATE_SHUTDOWN are intermediate states
arising from requesting TCPIP_STATE_OFFLINE or TCPIP_STATE_ONLINE.
Requesting these intermediate states is not useful.

8.3.3 Extended Communication Control and Information

8.3.3.1 TcpIp_RequestIpAddrAssignment
[SWS_TCPIP_00037]⌈
Service
TcpIp_RequestIpAddrAssignment
Name

Std_ReturnType TcpIp_RequestIpAddrAssignment (
TcpIp_LocalAddrIdType LocalAddrId,
TcpIp_IpAddrAssignmentType Type,
Syntax const TcpIp_SockAddrType* LocalIpAddrPtr,
uint8 Netmask,
const TcpIp_SockAddrType* DefaultRouterPtr
)

Service ID
0x0A
[hex]

Sync/Async Asynchronous

Reentrancy Non Reentrant

LocalAddr IP address index specifying the IP address for which an assignment


Id shall be initiated.

Type Type of IP address assignment which shall be initiated

Pointer to structure containing the IP address which shall be assigned to


LocalIp the EthIf controller indirectly specified via LocalAddrId. Note: This
Parameters
AddrPtr parameter is only used in case the parameter Type is set to TCPIP_
(in)
IPADDR_ASSIGNMENT_STATIC, can be set to NULL_PTR otherwise.

Network mask of IPv4 address or address prefix of IPv6 address in


Netmask CIDR Notation. Note: This parameter is only used in case the parameter
Type is set to TCPIP_IPADDR_ASSIGNMENT_STATIC.

Default Pointer to structure containing the IP address of the default router


71 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

RouterPtr (gateway) which shall be assigned. Note: This parameter is only used in
case the parameter Type is set to TCPIP_IPADDR_ASSIGNMENT_
STATIC, can be set to NULL_PTR otherwise.

Parameters
None
(inout)

Parameters
None
(out)

Std_-
E_OK: The request has been accepted
Return value Return-
E_NOT_OK: The request has not been accepted
Type

By this API service the local IP address assignment for the IP address specified by
Description
LocalAddrId shall be initiated.

Available via TcpIp.h

⌋()
[SWS_TCPIP_00116]⌈ The service TcpIp_RequestIpAddrAssignment() shall
initiate the local IP address assignment according to the IP address table entry
specified by LocalAddId using the method specified by Type.⌋()

[SWS_TCPIP_00079]⌈ In case TcpIp_RequestIpAddrAssignment() is called with


parameter Type set to TCPIP_IPADDR_ASSIGNMENT_STATIC and no
TcpIpStaticIpAddressConfig container is configured for the LocalAddr specified by
parameter LocalAddrId, TcpIp shall assign the IP address, netmask and default
router specified by parameter LocalIpAddrPtr, Netmask and DefaultRouterPtr as
soon as TCPIP_STATE_ONLINE is requested or immediately if already requested.⌋()

[SWS_TCPIP_00080]⌈ In case a multicast address is assigned, TcpIp shall derive


the related physical address from the multicast IP address and add the derived
address to the Eth MAC address filter by calling EthIf_UpdatePhys-
AddrFilter() with action set to ETH_ADD_TO_FILTER.⌋()

[SWS_TCPIP_00299]⌈ In case TcpIp_RequestIpAddrAssignment() is called


with parameter Type set to TCPIP_IPADDR_ASSIGNMENT_ALL, the IP address
assignment for the IP address table entry specified by LocalAddId shall be initiated
for all configured TcpIpAssignmentMethods with TcpIpAssignmentTrigger set to
TCPIP_MANUAL.⌋()

[SWS_TCPIP_00195]⌈ If TcpIp_RequestIpAddrAssignment is called for a


LocalAddrId configured with TcpIpAssignmentTrigger set to TCPIP_MANUAL, TcpIp
shall consider the related assignment as available.⌋()

72 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00196]⌈ If TcpIp_ ReleaseIpAddrAssignment is called for a


LocalAddrId configured with TcpIpAssignmentTrigger set to TCPIP_MANUAL, TcpIp
shall consider the related assignment as unavailable.⌋()

[SWS_TCPIP_00197]⌈ TcpIpAddrAssignments configured with


TcpIpAssignmentTrigger set to TCPIP_AUTOMATIC shall always be available.⌋()

[SWS_TCPIP_00198]⌈ If TcpIp_RequestIpAddrAssignment is called for a


LocalAddrId configured with TcpIpAssignmentTrigger set to TCPIP_AUTOMATIC,
TcpIp shall reject the request and return E_NOT_OK.⌋()

[SWS_TCPIP_00199]⌈ If TcpIp_ReleaseIpAddrAssignment is called for a


LocalAddrId configured with TcpIpAssignmentTrigger set to TCPIP_AUTOMATIC,
TcpIp shall reject the request and return E_NOT_OK.⌋()

8.3.3.2 TcpIp_ReleaseIpAddrAssignment
[SWS_TCPIP_00078]⌈
Service Name TcpIp_ReleaseIpAddrAssignment

Std_ReturnType TcpIp_ReleaseIpAddrAssignment (
Syntax TcpIp_LocalAddrIdType LocalAddrId
)

Service ID [hex] 0x0B

Sync/Async Asynchronous

Reentrancy Non Reentrant

IP address index specifying the IP address for which an


Parameters (in) LocalAddrId
assignment shall be released.

Parameters
None
(inout)

Parameters
None
(out)

Std_Return- E_OK: The request has been accepted


Return value
Type E_NOT_OK: The request has not been accepted

By this API service the local IP address assignment for the IP address specified
Description
by LocalAddrId shall be released.

Available via TcpIp.h

⌋()

73 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00117]⌈ The service TcpIp_ReleasepAddrAssignment() shall


release the local IP address assignment related to the IP address table entry
specified by LocalAddId.⌋()

8.3.3.3 TcpIp_ResetIpAssignment

[SWS_TCPIP_00215]⌈
Service Name TcpIp_ResetIpAssignment

Std_ReturnType TcpIp_ResetIpAssignment (
Syntax void
)

Service ID [hex] 0x1b

Sync/Async Synchronous /Asynchronous

Reentrancy Non Reentrant

Parameters (in) None

Parameters (inout) None

Parameters (out) None

E_OK: success
Return value Std_ReturnType
E_NOT_OK: switch port could not be initialized

Description Resets all learned IP-addresses to invalid values.

Available via TcpIp.h

⌋()
[SWS_TCPIP_00216]⌈ The service TcpIp_ResetIpAssignment() shall reset all
persistently stored IP addresses in the NvMBlock (see ECUC_TcpIp_00184 : ) to
invalid values (e.g. to 0.0.0.0 for IPv4 addresses).⌋(SRS_Eth_00087)

Note: The next time the TcpIpAddrAssignments configured with TCPIP_STORE are
started, the related address assignment method are started to obtain new IP
addresses.
[SWS_TCPIP_00217]⌈ The service TcpIp_ResetIpAssignment() shall be pre
compile time configurable On/Off by the configuration parameter:
TcpIpResetIPAssignmentApi (see ECUC_TcpIp_00182 : ).⌋(SRS_Eth_00087)

8.3.3.4 TcpIp_IcmpTransmit
[SWS_TCPIP_00039]⌈
Service Name TcpIp_IcmpTransmit

Std_ReturnType TcpIp_IcmpTransmit (
Syntax
TcpIp_LocalAddrIdType LocalIpAddrId,
74 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

const TcpIp_SockAddrType* RemoteAddrPtr,


uint8 Ttl,
uint8 Type,
uint8 Code,
uint16 DataLength,
const uint8* DataPtr
)

Service ID
0x0C
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

LocalIp IP address identifier representing the local IP address and EthIf


AddrId controller which shall be used for transmission of the ICMP message.

Remote
pointer to struct representing the remote address
AddrPtr

Time to live value to be used for the ICMP message. If 0 is specified


Ttl
the default value shall be used.
Parameters
type field value to be used in the ICMP message (Note: the value of
(in)
Type the type field determines the format of the remaining ICMP message
data)

Code code field value to be used in the ICMP message

Data
length of ICMP message
Length

DataPtr Pointer to data which shall be sent as ICMP message data

Parameters
None
(inout)

Parameters
None
(out)

Std_- Result of operation


Return value Return- E_OK The ICMP message has been sent successfully
Type E_NOT_OK The ICMP message was not sent.

By this API service the TCP/IP stack sends an ICMP message according to the
Description
specified parameters.

Available via TcpIp.h

⌋()
[SWS_TCPIP_00118]⌈ The service TcpIp_IcmpTransmit() shall (a) construct an
ICMP message according to the parameters Type, Code, DataLength and DataPtr
and (b) transmit the ICMP message using the local IP address and EthIf controller
specified by LocalIpAddrId to the destination specified by RemoteAddrPtr using a
time to live value according to the parameter Ttl.⌋()

75 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

8.3.3.5 TcpIp_IcmpV6Transmit
[SWS_TCPIP_00187]⌈
Service Name TcpIp_IcmpV6Transmit

Std_ReturnType TcpIp_IcmpV6Transmit (
TcpIp_LocalAddrIdType LocalIpAddrId,
const TcpIp_SockAddrType* RemoteAddrPtr,
uint8 HopLimit,
Syntax uint8 Type,
uint8 Code,
uint16 DataLength,
const uint8* DataPtr
)

Service ID
0x18
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

IP address identifier representing the local IP address and EthIf


LocalIp
controller which shall be used for transmission of the ICMPv6
AddrId
message.

Remote
pointer to struct representing the remote address
AddrPtr

Hop Limit value to be used for the ICMPv6 message. If 0 is specified


HopLimit
the default value shall be used.
Parameters
(in) type field value to be used in the ICMPv6 message. (Note: the value
Type of the type field determines the format of the remaining ICMPv6
message data)

Code code field value to be used in the ICMPv6 message

Data
length of ICMPv6 message
Length

DataPtr Pointer to data which shall be sent as ICMPv6 message data

Parameters
None
(inout)

Parameters
None
(out)

Std_- Result of operation


Return value Return- E_OK: The ICMPv6 message has been sent successfully
Type E_NOT_OK: The ICMPv6 message was not sent.

By this API service the TCP/IP stack sends an ICMPv6 message according to the
Description
specified parameters.

Available via TcpIp.h

⌋()

76 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00230] ⌈The service TcpIp_IcmpV6Transmit() shall (a) construct an


ICMPv6 message according to the parameters Type, Code, DataLength and DataPtr
and (b) transmit the ICMPv6 message using the local IP address and EthIf controller
specified by LocalIpAddrId to the destination specified by RemoteAddrPtr using a
Hop Limit value according to the parameter HopLimit.⌋()

8.3.3.6 TcpIp_DhcpReadOption
[SWS_TCPIP_00040]⌈
Service Name TcpIp_DhcpReadOption

Std_ReturnType TcpIp_DhcpReadOption (
TcpIp_LocalAddrIdType LocalIpAddrId,
uint8 Option,
Syntax
uint8* DataLength,
uint8* DataPtr
)

Service ID
0x0D
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

LocalIpAddr IP address identifier representing the local IP address and EthIf


Parameters Id controller for which the DHCP option shall be read.
(in)
Option DHCP option (note: according to IANA DHCP Options)

Parameters As input parameter, contains the length of the provided data buffer.
DataLength
(inout) Will be overwritten with the length of the actual data.

Parameters
DataPtr Pointer to memory containing DHCP option data
(out)

Result of operation
Std_-
Return value E_OK requested data retrieved successfully.
ReturnType
E_NOT_OK requested data could not be retrieved.

By this API service the TCP/IP stack retrieves DHCP option data identified by
Description
parameter option for already received DHCP options.

Available via TcpIp.h

⌋(SRS_Eth_00066)
[SWS_TCPIP_00233]⌈ If development error detection is enabled:
TcpIp_DhcpReadOption() shall check if the parameter LocalIpAddrId is valid. If the
check fails, TcpIp_DhcpReadOption() shall raise the development error
TCPIP_E_INV_ARG. ⌋(SRS_Eth_00066)

[SWS_TCPIP_00234]⌈ If development error detection is enabled:


TcpIp_DhcpReadOption() shall check if the parameter Option is valid. If the check

77 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

fails, TcpIp_DhcpReadOption() shall raise the development error


TCPIP_E_INV_ARG. ⌋(SRS_Eth_00066)

[SWS_TCPIP_00235]⌈ If development error detection is enabled:


TcpIp_DhcpReadOption() shall check if the parameter DataLength is valid (i.e. the
buffer is large enough for the requested option). If the check fails,
TcpIp_DhcpReadOption() shall raise the development error TCPIP_E_INV_ARG.⌋
(SRS_Eth_00066)

[SWS_TCPIP_00236]⌈ If the requested option has been set for the address specified
by LocalIpAddrId, TcpIp_DhcpReadOption() shall copy this option into the buffer
provided by DataPtr, set the parameter DataLength to the length of the option and
return E_OK.⌋(SRS_Eth_00066)

[SWS_TCPIP_00237]⌈ If the requested option has not been set for the address
specified by LocalIpAddrId, TcpIp_DhcpReadOption() shall set the parameter
DataLength to zero, leave the buffer provided by DataPtr unchanged and return
E_OK.⌋(SRS_Eth_00066)

8.3.3.7 TcpIp_DhcpV6ReadOption
[SWS_TCPIP_00189]⌈
Service Name TcpIp_DhcpV6ReadOption

Std_ReturnType TcpIp_DhcpV6ReadOption (
TcpIp_LocalAddrIdType LocalIpAddrId,
uint16 Option,
Syntax uint16* DataLength,
uint8* DataPtr
)

Service ID
0x19
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

LocalIpAddr IP address identifier representing the local IP address and EthIf


Parameters Id controller for which the DHCPv6 option shall be read.
(in)
Option DHCP option (note: according to IANA DHCP[v6] Options)

Parameters As input parameter, contains the length of the provided data buffer.
DataLength
(inout) Will be overwritten with the length of the actual data.

Parameters
DataPtr Pointer to memory containing DHCPv6 option data
(out)

Std_- Result of operation


Return value
ReturnType E_OK: requested data retrieved successfully.

78 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

E_NOT_OK: requested data could not be retrieved.

By this API service the TCP/IP stack retrieves DHCPv6 option data identified by
Description
parameter option for already received DHCPv6 options.

Available via TcpIp.h

⌋(SRS_Eth_00066)

[SWS_TCPIP_00238]⌈ If development error detection is enabled:


TcpIp_DhcpV6ReadOption() shall check if the parameter LocalIpAddrId is valid. If the
check fails, TcpIp_DhcpV6ReadOption() shall raise the development error
TCPIP_E_INV_ARG.⌋(SRS_Eth_00066)

[SWS_TCPIP_00239]⌈ If development error detection is enabled:


TcpIp_DhcpV6ReadOption() shall check if the parameter Option is valid. If the check
fails, TcpIp_DhcpV6ReadOption() shall raise the development error
TCPIP_E_INV_ARG. ⌋(SRS_Eth_00066)

[SWS_TCPIP_00240]⌈ If development error detection is enabled:


TcpIp_DhcpV6ReadOption() shall check if the parameter DataLength is valid (i.e. the
buffer is large enough for the requested option). If the check fails,
TcpIp_DhcpV6ReadOption() shall raise the development error TCPIP_E_INV_ARG.⌋
(SRS_Eth_00066)

[SWS_TCPIP_00241]⌈ If the requested option has been set for the address specified
by LocalIpAddrId, TcpIp_DhcpV6ReadOption() shall copy this option into the buffer
provided by DataPtr, set the parameter DataLength to the length of the option and
return E_OK.⌋(SRS_Eth_00066)

[SWS_TCPIP_00242]⌈ If the requested option has not been set for the address
specified by LocalIpAddrId, TcpIp_DhcpV6ReadOption() shall set the parameter
DataLength to zero, leave the buffer provided by DataPtr unchanged and return
E_OK.⌋(SRS_Eth_00066)

8.3.3.8 TcpIp_DhcpWriteOption
[SWS_TCPIP_00020]⌈
Service Name TcpIp_DhcpWriteOption

Std_ReturnType TcpIp_DhcpWriteOption (
TcpIp_LocalAddrIdType LocalIpAddrId,
uint8 Option,
Syntax uint8 DataLength,
const uint8* DataPtr
)

79 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Service ID
0x0E
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

LocalIpAddr IP address identifier representing the local IP address and EthIf


Id controller for which the DHCP option shall be written.

Parameters Option DHCP option (note: according to IANA DHCP Options)


(in)
DataLength length of DHCP option data

DataPtr Pointer to memory containing DHCP option data

Parameters
None
(inout)

Parameters
None
(out)

Result of operation
Std_Return-
Return value E_OK no error occured.
Type
E_NOT_OK DHCP option data could not be written.

By this API service the TCP/IP stack writes the DHCP option data identified by
Description
parameter option.

Available via TcpIp.h

⌋(SRS_Eth_00065)
[SWS_TCPIP_00243]⌈ If development error detection is enabled:
TcpIp_DhcpWriteOption() shall check if the parameter LocalIpAddrId is valid. If the
check fails, TcpIp_DhcpWriteOption() shall raise the development error
TCPIP_E_INV_ARG. ⌋(SRS_Eth_00065)

[SWS_TCPIP_00244]⌈ If development error detection is enabled:


TcpIp_DhcpWriteOption() shall check if the parameter Option is valid. If the check
fails, TcpIp_DhcpWriteOption() shall raise the development error
TCPIP_E_INV_ARG. ⌋(SRS_Eth_00065)

[SWS_TCPIP_00245]⌈ If development error detection is enabled:


TcpIp_DhcpWriteOption() shall check if the parameter DataLength is valid (i.e. the
length of the provided option is not larger than supported by the protocol). If the
check fails, TcpIp_DhcpWriteOption() shall raise the development error
TCPIP_E_INV_ARG.⌋(SRS_Eth_00065)

[SWS_TCPIP_00246]⌈ If the length indicated by DataLength is larger than zero


TcpIp_DhcpWriteOption() shall set the option identified by Option to the value

80 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

provided by DataPtr internally for the address specified by LocalIpAddrId and return
E_OK.⌋(SRS_Eth_00065)

[SWS_TCPIP_00247]⌈ If the length indicated by DataLength is equal to zero


TcpIp_DhcpWriteOption() shall unset the option identified by Option for the address
specified by LocalIpAddrId and return E_OK.⌋(SRS_Eth_00065)

8.3.3.9 TcpIp_DhcpV6WriteOption
[SWS_TCPIP_00190]⌈
Service Name TcpIp_DhcpV6WriteOption

Std_ReturnType TcpIp_DhcpV6WriteOption (
TcpIp_LocalAddrIdType LocalIpAddrId,
uint16 Option,
Syntax uint16 DataLength,
const uint8* DataPtr
)

Service ID
0x1a
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

LocalIpAddr IP address identifier representing the local IP address and EthIf


Id controller for which the DHCPv6 option shall be written.

Parameters Option DHCP option (note: according to IANA DHCP[v6] Options


(in)
DataLength length of DHCPv6 option data

DataPtr Pointer to memory containing DHCPv6 option data

Parameters
None
(inout)

Parameters
None
(out)

Result of operation
Std_Return-
Return value E_OK: no error occured.
Type
E_NOT_OK: DHCPv6 option data could not be written.

By this API service the TCP/IP stack writes the DHCPv6 option data identified by
Description
parameter option.

Available via TcpIp.h

⌋(SRS_Eth_00065)

[SWS_TCPIP_00248]⌈ If development error detection is enabled:


TcpIp_DhcpV6WriteOption() shall check if the parameter LocalIpAddrId is valid. If the

81 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

check fails, TcpIp_DhcpV6WriteOption() shall raise the development error


TCPIP_E_INV_ARG. ⌋(SRS_Eth_00065)

[SWS_TCPIP_00249]⌈ If development error detection is enabled:


TcpIp_DhcpV6WriteOption() shall check if the parameter Option is valid. If the check
fails, TcpIp_DhcpV6WriteOption() shall raise the development error
TCPIP_E_INV_ARG. ⌋(SRS_Eth_00065)
[SWS_TCPIP_00250]⌈ If development error detection is enabled:
TcpIp_DhcpV6WriteOption() shall check if the parameter DataLength is valid (i.e. the
length of the provided option is not larger than supported by the protocol). If the
check fails, TcpIp_DhcpV6WriteOption() shall raise the development error
TCPIP_E_INV_ARG.⌋(SRS_Eth_00065)

[SWS_TCPIP_00251]⌈ If the length indicated by DataLength is larger than zero


TcpIp_DhcpV6WriteOption() shall set the option identified by Option to the value
provided by DataPtr internally for the address specified by LocalIpAddrId and return
E_OK.⌋(SRS_Eth_00065)

[SWS_TCPIP_00252]⌈ If the length indicated by DataLength is equal to zero


TcpIp_DhcpV6WriteOption() shall unset the option identified by Option for the
address specified by LocalIpAddrId and return E_OK.⌋(SRS_Eth_00065)

8.3.3.10 TcpIp_ChangeParameter
[SWS_TCPIP_00016]⌈
Service Name TcpIp_ChangeParameter

Std_ReturnType TcpIp_ChangeParameter (
TcpIp_SocketIdType SocketId,
Syntax TcpIp_ParamIdType ParameterId,
const uint8* ParameterValue
)

Service ID
0x0F
[hex]

Sync/Async Synchronous

Reentrancy Reentrant for different SocketIds. Non reentrant for the same SocketId.

SocketId Socket identifier of the related local socket resource.


Parameters
ParameterId Identifier of the parameter to be changed
(in)
ParameterValue Pointer to memory containing the new parameter value

Parameters
None
(inout)

82 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Parameters
None
(out)

E_OK: The parameter has been changed successfully.


Return value Std_ReturnType
E_NOT_OK: The parameter could not be changed.

By this API service the TCP/IP stack is requested to change a parameter of a


Description
socket. E.g. the Nagle algorithm may be controlled by this API.

Available via TcpIp.h

⌋()
[SWS_TCPIP_00119]⌈ The service TcpIp_ChangeParameter() shall change the
parameter specified by ParameterId with the value (casted to the respective data
type) specified by ParameterValue for the SocketId.⌋()

8.3.3.11 TcpIp_GetIpAddr
[SWS_TCPIP_00032]⌈
Service
TcpIp_GetIpAddr
Name

Std_ReturnType TcpIp_GetIpAddr (
TcpIp_LocalAddrIdType LocalAddrId,
TcpIp_SockAddrType* IpAddrPtr,
Syntax
uint8* NetmaskPtr,
TcpIp_SockAddrType* DefaultRouterPtr
)

Service ID
0x10
[hex]

Sync/Async Synchronous

Reentrancy Reentrant

Parameters LocalAddr Local address identifier referring to the local IP address which shall be
(in) Id obtained.

Pointer to a struct where the IP address shall be stored. The struct


member domain shall be set to the desired TcpIp_DomainType and it
IpAddrPtr shall be ensured that the struct is large enough to store an address of
the selected type (INET or INET6). Struct members not related to the IP
Parameters
address are of arbitrary value and shall not be used.
(inout)
Pointer to struct where the IP address of the default router (gateway) is
Default
stored (struct member "port" is not used and of arbitrary value). The
RouterPtr
struct must be of the same type and size as IpAddrPtr.

Parameters Netmask Pointer to memory where Network mask of IPv4 address or address
(out) Ptr prefix of IPv6 address in CIDR Notation is stored

Result of operation
Std_-
E_OK: The request was successful
Return value Return-
E_NOT_OK: The request was not successful, e.g. domain in IpAddrPtr
Type
and the local domain type do not match

83 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Obtains the local IP address actually used by LocalAddrId, the netmask and default
Description
router

Available via TcpIp.h

⌋()
[SWS_TCPIP_00205]⌈ TcpIp_GetIpAddr() shall refuse the request if the domain
set in IpAddrPtr does not match the TcpIp_DomainType of the selected local
address and return E_NOT_OK. If development error detection is enabled, the
service TcpIp_GetIpAddr() shall also raise the development error
TCPIP_E_INV_ARG.⌋()

[SWS_TCPIP_00206]⌈ TcpIp_GetIpAddr() shall refuse the request if the domain


set in IpAddrPtr does not match the domain set in DefaultRouterPtr and
return E_NOT_OK. If development error detection is enabled, the service
TcpIp_GetIpAddr() shall also raise the development error TCPIP_E_INV_ARG.⌋
()

8.3.3.12 TcpIp_GetPhysAddr
[SWS_TCPIP_00033]⌈
Service Name TcpIp_GetPhysAddr

Std_ReturnType TcpIp_GetPhysAddr (
TcpIp_LocalAddrIdType LocalAddrId,
Syntax
uint8* PhysAddrPtr
)

Service ID
0x11
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

Local address identifier implicitely specifing the EthIf controller for


Parameters (in) LocalAddrId
which the physical address shall be obtained.

Parameters
None
(inout)

Parameters PhysAddr Pointer to the memory where the physical source address (MAC
(out) Ptr address) in network byte order is stored

Result of operation
Std_Return- E_OK The request was successful
Return value
Type E_NOT_OK The request was not successful, e.g. no unique Ctrl
specified via IpAddrId.

Obtains the physical source address used by the EthIf controller implicitly
Description
specified via LocalAddrId.

Available via TcpIp.h

84 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

⌋()

8.3.3.13 TcpIp_GetRemotePhysAddr
[SWS_TCPIP_00137]⌈
Service
TcpIp_GetRemotePhysAddr
Name

TcpIp_ReturnType TcpIp_GetRemotePhysAddr (
uint8 CtrlIdx,
const TcpIp_SockAddrType* IpAddrPtr,
Syntax
uint8* PhysAddrPtr,
boolean initRes
)

Service ID
0x16
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

CtrlIdx EthIf controller index to identify the related ARP/NDP table.

specifies the IP address for which the physical address shall be


IpAddrPtr
Parameters retrieved
(in)
specifies if the address resolution shall be initiated (TRUE) or not
initRes (FALSE) in case the physical address related to the specified IP
address is currently unknown.

Parameters
None
(inout)

Parameters Pointer to the memory where the physical address (MAC address)
PhysAddrPtr
(out) related to the specified IP address is stored in network byte order.

TCPIP_E_OK: specified IP address resolved, physical address


TcpIp_- provided via PhysAddrPtr
Return value
ReturnType TCPIP_E_PHYS_ADDR_MISS: physical address currently unknown
(address resolution initiated if initRes set to TRUE)

TcpIp_GetRemotePhysAddr queries the IP/physical address translation table


specified by CtrlIdx and returns the physical address related to the IP address
Description specified by IpAddrPtr. In case no physical address can be retrieved and parameter
initRes is TRUE, address resolution for the specified IP address is initiated on the
local network.

Available via TcpIp.h

⌋()

[SWS_TCPIP_00138]⌈ TcpIp_GetRemotePhysAddr shall lookup the physical


address for the IP address specified by IpAddrPtr at the IP/physical address
translation table related to the controller identified by CtrlIdx.
(1) If the physical address is already known, PhysAddrPtr shall be set to the related
physical address and the function shall return with TCPIP_E_OK.
85 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

(2) Otherwise it shall (a) initiate an address resolution if parameter initRes is set to
TRUE and (b) return with TCPIP_E_PHYS_ADDR_MISS. PhysAddrPtr is not
updated in this case.⌋()

[SWS_TCPIP_00139]⌈ TcpIp_GetRemotePhysAddr shall immediately return with


TCPIP_E_NOT_OK if it is called with an IP address that is not part of the same sub
network as the local address currently assigned to the controller identified by CtrlIdx.⌋
()

8.3.3.14 TcpIp_GetCtrlIdx
[SWS_TCPIP_00140]⌈
Service Name TcpIp_GetCtrlIdx

Std_ReturnType TcpIp_GetCtrlIdx (
TcpIp_LocalAddrIdType LocalAddrId,
Syntax
uint8* CtrlIdxPtr
)

Service ID [hex] 0x17

Sync/Async Synchronous

Reentrancy Reentrant

Local address identifier implicitely specifing the EthIf controller


Parameters (in) LocalAddrId
that shall be returned.

Parameters
None
(inout)

Parameters Pointer to the memory where the index of the controller related to
CtrlIdxPtr
(out) LocalAddrId is stored

Result of operation
Std_Return-
Return value E_OK the request was successful
Type
E_NOT_OK the request was not successful.

Description TcpIp_GetCtrlIdx returns the index of the controller related to LocalAddrId.

Available via TcpIp.h

⌋()
[SWS_TCPIP_00141]⌈ TcpIp_GetCtrlIdx shall return the index of the controller
related to LocalAddrId.⌋()

8.3.3.15 TcpIp_GetArpCacheEntries

[SWS_TCPIP_91002]⌈
Service
TcpIp_GetArpCacheEntries
Name

Syntax Std_ReturnType TcpIp_GetArpCacheEntries (

86 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

uint8 ctrlIdx,
uint32* numberOfElements,
TcpIp_ArpCacheEntryType* entryListPtr
)

Service ID
0x1d
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters
ctrlIdx EthIf controller index to identify the related ARP table.
(in)

In: Maximum number of entries that can be stored in output entryList


Parameters numberOf
Ptr. Out: Number of entries written to output entryListPtr (Number of
(inout) Elements
all entries in the cache if input value is 0).

Parameters
entryListPtr Pointer to memory where the list of cache entries shall be stored.
(out)

E_OK: physical address cache could be read.


Std_Return-
Return value E_NOT_OK: physical address cache could not be read (i.e. no IPv4
Type
instance active on this controller)

Copies entries from the physical address cache of the IPv4 instance that is active on
the EthIf controller specified by ctrlIdx into a user provided buffer. The function will
Description copy all or numberOfElements into the output list. If input value of numberOf
Elements is 0 the function will not copy any data but only return the number of valid
entries in the cache. EntryListPtr may be NULL_PTR in this case.

Available via TcpIp.h

⌋()

[SWS_TCPIP_00271]⌈ TcpIp_GetArpCacheEntries() shall only consider entryListPtr


set to NULL_PTR as valid if numberOfElements is set to zero.⌋()

[SWS_TCPIP_00272]⌈ If TcpIp_GetArpCacheEntries() is called with


numberOfElements set to zero, TcpIp shall set the parameter numberOfElements to
the number of valid entries in the physical address cache related to ctrlIdx, leave the
buffer provided by entryListPtr unchanged and return E_OK.⌋()

[SWS_TCPIP_00273]⌈ If the numberOfElements is greater zero,


TcpIp_GetArpCacheEntries() shall copy up to that number of valid entries from the
physical address cache related to ctrlIdx into the buffer provided by entryListPtr, set
the parameter numberOfElements to the number of copied elements and return
E_OK.⌋()

87 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

8.3.3.16 TcpIp_GetNdpCacheEntries

[SWS_TCPIP_91001]⌈
Service
TcpIp_GetNdpCacheEntries
Name

Std_ReturnType TcpIp_GetNdpCacheEntries (
uint8 ctrlIdx,
Syntax uint32* numberOfElements,
TcpIp_NdpCacheEntryType* entryListPtr
)

Service ID
0x1c
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters
ctrlIdx EthIf controller index to identify the related NDP table.
(in)

In: Maximum number of entries that can be stored in output entryList


Parameters numberOf
Ptr. Out: Number of entries written to output entryListPtr (Number of
(inout) Elements
all entries in the cache if input value is 0).

Parameters
entryListPtr Pointer to memory where the list of cache entries shall be stored.
(out)

E_OK: physical address cache could be read.


Std_Return-
Return value E_NOT_OK: physical address cache could not be read (i.e. no IPv6
Type
instance active on this controller)

Copies entries from the physical address cache of the IPv6 instance that is active on
the EthIf controller specified by ctrlIdx into a user provided buffer. The function will
Description copy all or numberOfElements into the output list. If input value of numberOf
Elements is 0 the function will not copy any data but only return the number of valid
entries in the cache. EntryListPtr may be NULL_PTR in this case.

Available via TcpIp.h

⌋()

[SWS_TCPIP_00274]⌈ TcpIp_GetNdpCacheEntries() shall only consider entryListPtr


set to NULL_PTR as valid if numberOfElements is set to zero.⌋()

[SWS_TCPIP_00275]⌈ If TcpIp_GetNdpCacheEntries() is called with


numberOfElements set to zero, TcpIp shall set the parameter numberOfElements to
the number of valid entries in the physical address cache related to ctrlIdx, leave the
buffer provided by entryListPtr unchanged and return E_OK.⌋()

[SWS_TCPIP_00276]⌈ If the numberOfElements is greater zero,


TcpIp_GetNdpCacheEntries() shall copy up to that number of valid entries from the
physical address cache related to ctrlIdx into the buffer provided by entryListPtr, set
88 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

the parameter numberOfElements to the number of copied elements and return


E_OK.⌋()

8.3.3.17 TcpIp_GetAndResetMeasurementData
[SWS_TCPIP_91006]⌈
Service
TcpIp_GetAndResetMeasurementData
Name

Std_ReturnType TcpIp_GetAndResetMeasurementData (
TcpIp_MeasurementIdxType MeasurementIdx,
Syntax boolean MeasurementResetNeeded,
uint32* MeasurementDataPtr
)

Service ID
0x45
[hex]

Sync/Async Synchronous

Reentrancy Reentrant

MeasurementIdx Data index of measurement data


Parameters
(in)
MeasurementResetNeeded Flag to trigger a reset of the measurement data

Parameters
None
(inout)

Parameters Reference to data buffer, where to copy


MeasurementDataPtr
(out) measurement data

E_OK: successful
Return value Std_ReturnType
E_NOT_OK: failed

Allows to read and reset detailed measurement data for diagnostic purposes. Get all
MeasurementIdx's at once is not supported. TCPIP_MEAS_ALL shall only be used
Description
to reset all MeasurementIdx's at once. A NULL_PTR shall be provided for
MeasurementDataPtr in this case.

Available via TcpIp.h

⌋()

[SWS_TCPIP_00284] ⌈The function TcpIp_GetAndResetMeasurementData shall be


pre compile time configurable On/Off by the configuration parameter:
TcpIpGetAndResetMeasurementDataApi.⌋ (SRS_Eth_00129)

[SWS_TCPIP_00285] ⌈If development error detection is enabled:


TcpIp_GetAndResetMeasurementData () shall check that the service TcpIp_Init ()
was previously called. If the check fails, TcpIp_GetAndResetMeasurementData ()
shall raise the development error TCPIP_E_UNINIT.⌋ (SRS_Eth_00129)

89 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00295] ⌈TcpIp_GetAndResetMeasurementData () shall accept


MeasurementDataPtr set to NULL_PTR. In this case the measurement data shall not
be copied.⌋ (SRS_Eth_00129)

[SWS_TCPIP_00286] ⌈TcpIp_GetAndResetMeasurementData ()shall return


measurement data for selected measurement index.⌋ (SRS_Eth_00129)

[SWS_TCPIP_00287] ⌈For measurement index TCPIP_MEAS_DROP_TCP


TcpIp_GetAndResetMeasurementData () shall return the number of all TCP
datagrams which cannot be mapped to a valid local IP/Port.⌋ (SRS_Eth_00129)

[SWS_TCPIP_00288] ⌈For measurement index TCPIP_MEAS_DROP_UDP


TcpIp_GetAndResetMeasurementData () shall return the number of all UDP
datagrams which cannot be mapped to a valid local IP/Port.⌋ (SRS_Eth_00129)

[SWS_TCPIP_00289] ⌈For measurement index TCPIP_MEAS_DROP_IPV4


TcpIp_GetAndResetMeasurementData () shall return the number of all dropped IPv4
datagrams, caused by invalid IP address.⌋ (SRS_Eth_00129)

[SWS_TCPIP_00290] ⌈For measurement index TCPIP_MEAS_DROP_IPV6


TcpIp_GetAndResetMeasurementData () shall return the number of all dropped IPv6
datagrams, caused by invalid IP address.⌋ (SRS_Eth_00129)

[SWS_TCPIP_00291] ⌈TcpIp_GetAndResetMeasurementData () shall return


E_NOT_OK if the requested measurement index is not supported.⌋
(SRS_Eth_00129)

[SWS_TCPIP_00292] ⌈TcpIp_GetAndResetMeasurementData () shall additionally


reset the measurement data to 0 if the MeasurementResetNeeded is true. The reset
shall be applied after measurement data has been read.⌋ (SRS_Eth_00129)

[SWS_TCPIP_00293] ⌈TcpIp_GetAndResetMeasurementData () shall reset all


existing measurement data to 0, if MeasurementResetNeeded is true and
measurement index is set to TCPIP_MEAS_ALL.⌋ (SRS_Eth_00129)

[SWS_TCPIP_00294] ⌈All measurement data which counts data shall not overrun.⌋
(SRS_Eth_00129)

8.3.4 Transmission
90 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

8.3.4.1 TcpIp_UdpTransmit
[SWS_TCPIP_00025]⌈
Service
TcpIp_UdpTransmit
Name

Std_ReturnType TcpIp_UdpTransmit (
TcpIp_SocketIdType SocketId,
const uint8* DataPtr,
Syntax
const TcpIp_SockAddrType* RemoteAddrPtr,
uint16 TotalLength
)

Service ID
0x12
[hex]

Sync/Async Synchronous

Reentrancy Reentrant for different SocketIds. Non reentrant for the same SocketId.

SocketId Socket identifier of the related local socket resource.

Pointer to a linear buffer of TotalLength bytes containing the data to be


DataPtr transmitted. In case DataPtr is a NULL_PTR, TcpIp shall retrieve data
from upper layer via callback <Up>_CopyTxData().
Parameters
(in)
Remote
IP address and port of the remote host to transmit to.
AddrPtr

Total
indicates the payload size of the UDP datagram.
Length

Parameters
None
(inout)

Parameters
None
(out)

Std_- E_OK: Request to transmit the UDP message has been accepted.
Return value Return- E_NOT_OK: UDP message could not be sent because of a permanent
Type error, e.g. message is too long.

This service transmits data via UDP to a remote node. The transmission of the data
Description
is immediately performed with this function call by forwarding it to EthIf.

Available via TcpIp.h

⌋()
[SWS_TCPIP_00120]⌈ With respect to SWS_TCPIP_00191 and
SWS_TCPIP_00193, the service TcpIp_UdpTransmit() shall immediately transmit
TotalLength data bytes via UDP and the socket specified by SocketId to a remote
socket specified by RemoteAddrPtr according to the sequence diagram specified in
section 9.5.⌋()

[SWS_TCPIP_00121]⌈ DataPtr shall either point to a linear buffer of TotalLength


bytes containing the data for transmission or be a NULL_PTR. For data transmission
the service TcpIp_UdpTransmit() shall either use all data from the linear buffer if
91 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

DataPtr is not a NULL_PTR, or retrieve TotalLength data bytes from the upper layer
by calling Up_CopyTxData() one or multiple times in the context of this service
otherwise.⌋()

[SWS_TCPIP_00122]⌈ The service TcpIp_UdpTransmit() shall select the local IP


address and port for transmission if the socket specified by SocketId has not been
bound to a local resource via a previous call to TcpIp_Bind().⌋()

8.3.4.2 TcpIp_TcpTransmit

[SWS_TCPIP_00050]⌈
Service
TcpIp_TcpTransmit
Name

Std_ReturnType TcpIp_TcpTransmit (
TcpIp_SocketIdType SocketId,
const uint8* DataPtr,
Syntax uint32 AvailableLength,
boolean ForceRetrieve
)

Service ID
0x13
[hex]

Sync/Async Asynchronous

Reentrancy Reentrant for different SocketIds. Non reentrant for the same SocketId.

SocketId Socket identifier of the related local socket resource.

Pointer to a linear buffer of AvailableLength bytes containing the data to


DataPtr be transmitted. In case DataPtr is a NULL_PTR, TcpIp shall retrieve
data from upper layer via callback <Up>_CopyTxData().

Available
Available data for transmission in bytes.
Length
Parameters
(in) This parameter is only valid if DataPtr is a NULL_PTR. Indicates how the
TCP/IP stack retrieves data from upper layer if DataPtr is a NULL_PTR.
TRUE: the whole data indicated by availableLength shall be retrieved
from the upper layer via one or multiple <Up>_CopyTxData() calls within
Force
the context of this transmit function. FALSE: The TCP/IP stack may
Retrieve
retrieve up to availableLength data from the upper layer. It is allowed to
retrieve less than availableLength bytes. Note: Not retrieved data will be
provided by upper layer with the next call to TcpIp_TcpTransmit (along
with new data if available).

Parameters
None
(inout)

Parameters
None
(out)

Std_- E_OK: The request has been accepted


Return value Return- E_NOT_OK: The request has not been accepted, e.g. due to a lack of
Type buffer space or the socket is not connected.

92 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

This service requests transmission of data via TCP to a remote node. The
transmission of the data is decoupled.
Description
Note: The TCP segment(s) are sent dependent on runtime factors (e.g. receive
window) and configuration parameter (e.g. Nagle algorithm) .

Available via TcpIp.h

⌋()
[SWS_TCPIP_00123]⌈ The service TcpIp_TcpTransmit() shall transmit data via
TCP and the socket specified by SocketId to the connected remote socket according
to the sequence diagram specified in section 9.4.⌋()

[SWS_TCPIP_00124]⌈ DataPtr shall either point to a linear buffer of AvailableLength


bytes containing the data for transmission or be a NULL_PTR. For data transmission
the service TcpIp_TcpTransmit() shall either use all data from the linear buffer if
DataPtr is not a NULL_PTR, or retrieve up to AvailableLength data bytes from the
upper layer by calling Up_CopyTxData() one or multiple times in the context of this
service otherwise.⌋()

[SWS_TCPIP_00125]⌈ The service TcpIp_TcpTransmit() shall retrieve exactly


AvailableLength bytes from the upper layer if the parameter DataPtr is a NULL_PTR
and ForceRetrieve is TRUE. (If DataPtr is a NULL_PTR and ForceRetrieve is FALSE,
TcpIp may retrieve less data then available).⌋()

Note: The TCP segment(s) are sent dependent on runtime factors (e.g. receive
window) and configuration parameter (e.g. Nagle algorithm).

8.4 Call-back notifications


This is a list of functions provided for other modules.

8.4.1 TcpIp_RxIndication

[SWS_TCPIP_00029]⌈
Service Name TcpIp_RxIndication

void TcpIp_RxIndication (
uint8 CtrlIdx,
Eth_FrameType FrameType,
boolean IsBroadcast,
Syntax const uint8* PhysAddrPtr,
const uint8* DataPtr,
uint16 LenByte
)

Service ID [hex] 0x14

Sync/Async Synchronous
93 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Reentrancy Non Reentrant

CtrlIdx Index of the EthIf controller.

FrameType frame type of received Ethernet frame

Is
parameter to indicate a broadcast frame
Broadcast
Parameters (in)
PhysAddr pointer to Physical source address (MAC address in network byte
Ptr order) of received Ethernet frame

Pointer to payload of the received Ethernet frame (i.e. Ethernet


DataPtr
header is not provided).

LenByte Length of received data.

Parameters
None
(inout)

Parameters
None
(out)

Return value None

By this API service the TCP/IP stack gets an indication and the data of a received
Description
frame.

Available via TcpIp.h

⌋()

8.5 Scheduled functions


These functions are directly called by Basic Software Scheduler. The following
functions shall have no return value and no parameter. All functions shall be non
reentrant.

8.5.1 Terms and definitions

For details refer to the chapter 8.5 “Scheduled functions” in SWS_BSWGeneral.

8.5.2 TcpIp_MainFunction

[SWS_TCPIP_00026]⌈
Service Name TcpIp_MainFunction

void TcpIp_MainFunction (
Syntax void
)

Service ID [hex] 0x15

Description Schedules the TCP/IP stack. (Entry point for scheduling)


94 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Available via SchM_TcpIp.h

⌋()

8.6 Expected Interfaces


In this chapter all interfaces required from other modules are listed.

8.6.1 Mandatory Interfaces

This chapter defines all interfaces which are required to fulfill the core functionality of
the module.

[SWS_TCPIP_00027]⌈
API Header
Description
Function File

Called by SW-Cs or BSW modules to report monitor status information to


the Dem. BSW modules calling Dem_SetEventStatus can safely ignore
Dem_Set-
Dem.h the return value. This API will be available only if ({Dem/DemConfigSet/
EventStatus
DemEventParameter/DemEventReportingType} == STANDARD_
REPORTING)

Det_Report- Service to report runtime errors. If a callout has been configured then this
Det.h
RuntimeError callout shall be called.

EthIf_Get-
EthIf.h Obtains the physical source address used by the indexed controller
PhysAddr

EthIf_-
ProvideTx- EthIf.h Provides access to a transmit buffer of the specified Ethernet controller.
Buffer

EthIf_Set-
EthIf.h Sets the physical source address used by the indexed controller.
PhysAddr

EthIf_-
EthIf.h Triggers transmission of a previously filled transmit buffer
Transmit

EthSM_Tcp-
EthSM_ This service is called by the TcpIp to report the actual TcpIp state (e.g.
IpMode-
TcpIp.h online, offline).
Indication

⌋()

8.6.2 Optional Interfaces

This chapter defines all interfaces which are required to fulfill an optional functionality
of the module.

[SWS_TCPIP_00028]⌈

95 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Header
API Function Description
File

Uses the given data to perform an AEAD encryption and stores the
Csm_AEAD-
Csm.h ciphertext and the MAC in the memory locations pointed by the
Decrypt
ciphertext pointer and Tag pointer.

Uses the given input data to perform a AEAD encryption and stores
Csm_AEAD-
Csm.h the ciphertext and the MAC in the memory locations pointed by the
Encrypt
ciphertext pointer and Tag pointer.

Decrypts the given encrypted data and store the decrypted plaintext in
Csm_Decrypt Csm.h
the memory location pointed by the result pointer.

Encrypts the given data and store the ciphertext in the memory
Csm_Encrypt Csm.h
location pointed by the result pointer.

Uses the given data to perform the hash calculation and stores the
Csm_Hash Csm.h
hash.

Csm_Key-
Csm.h This function shall copy a key elements from one key to a target key.
ElementCopy

Copies a key element to another key element in the same crypto


Csm_Key- driver. The keyElementSourceOffset and keyElementCopyLength
ElementCopy- Csm.h allows to copy just a part of the source key element into the
Partial destination. The offset into the target key is also specified with this
function.

Csm_Key- Calculates the public value of the current user for the key exchange
ExchangeCalc- Csm.h and stores the public key in the memory location pointed by the public
PubVal value pointer.

Csm_Key- Calculates the shared secret key for the key exchange with the key
ExchangeCalc- Csm.h material of the key identified by the keyId and the partner public key.
Secret The shared secret key is stored as a key element in the same key.

Csm_Mac- Uses the given data to perform a MAC generation and stores the MAC
Csm.h
Generate in the memory location pointed to by the MAC pointer.

Verifies the given MAC by comparing if the MAC is generated with the
Csm_MacVerify Csm.h
given data.

Csm_Random- Generate a random number and stores it in the memory location


Csm.h
Generate pointed by the result pointer.

Csm_Signature- Uses the given data to perform the signature calculation and stores the
Csm.h
Generate signature in the memory location pointed by the result pointer.

Csm_Signature- Verifies the given MAC by comparing if the signature is generated with
Csm.h
Verify the given data.

Det_ReportError Det.h Service to report development errors.

Update the physical source address to/from the indexed controller


EthIf_Update-
EthIf.h filter. If the Ethernet Controller is not capable to do the filtering, the
PhysAddrFilter
software has to do this.

IdsM_Set- This API is the application interface to report security events to the Ids
IdsM.h
SecurityEvent M.

96 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

IdsM_Set-
This API is the application interface to report security events with
SecurityEvent- IdsM.h
context data to the IdsM.
WithContextData

KeyM_Get-
KeyM.h This function provides the certificate data
Certificate

KeyM_Set- This function provides the certificate data to the key management
KeyM.h
Certificate module to temporarily store the certificate.

This function verifies a certificate that was previously provided with


KeyM_Verify-
KeyM.h KeyM_SetCertificate() against already stored and provided certificates
Certificate
stored with other certificate IDs.

This function performs a certificate verification against a list of


certificates. It is a pre-requisite that the certificate that shall be checked
KeyM_Verify-
KeyM.h has already been written with KeyM_SetCertificate() and that the root
CertificateChain
certificate is either in the list or is already assigned to one of the other
certificates.

⌋()

8.6.3 Configurable interfaces

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
interfaces is not fixed because they are configurable.

The ServiceID of the functions defined in this chapter are specified at the upper layer
module implementing the functions.

8.6.3.1 TcpIp_<Up>GetSocket
[SWS_TCPIP_00018]⌈
Service
TcpIp_<Up>GetSocket
Name

Std_ReturnType TcpIp_<Up>GetSocket (
TcpIp_DomainType Domain,
Syntax TcpIp_ProtocolType Protocol,
TcpIp_SocketIdType* SocketIdPtr
)

Service ID
0x03
[hex]

Sync/Async Synchronous

Reentrancy Reentrant

Domain IP address family.


Parameters
(in)
Protocol Socket protocol as sub-family of parameter type.

Parameters None

97 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

(inout)

Pointer to socket identifier representing the requested socket. This


Parameters SocketId socket identifier must be provided for all further API calls which
(out) Ptr requires a SocketId. Note: SocketIdPtr is only valid if return value is E_
OK.

Std_- Result of operation


Return value Return- E_OK The request has been accepted
Type E_NOT_OK The request has not been accepted: no free socket

By this API service the TCP/IP stack is requested to allocate a new socket. Note:
Description
Each accepted incoming TCP connection also allocates a socket resource.

Available via TcpIp.h

⌋(SRS_Eth_00103)
[SWS_TCPIP_00128]⌈ If development error detection is enabled, the service
TcpIp_<Up>GetSocket() shall check the parameter Domain for being valid and
raise the development error TCPIP_E_AFNOSUPPORT if it is invalid.⌋()

[SWS_TCPIP_00222]⌈ For each configured TcpIpSocketOwner TcpIp shall provide a


separate TcpIp_<Up>GetSocket API by replacing the tag <Up> with the short name
of the TcpIpSocketOwner container. Sockets allocated by a dedicated
TcpIp_<Up>GetSocket API shall be assigned exclusively to the respective upper
layer.⌋(SRS_Eth_00103)

8.6.3.2 <Up_PhysAddrTableChg>
[SWS_TCPIP_00143]⌈
Service Name <Up_PhysAddrTableChg>

void <Up_PhysAddrTableChg> (
uint8 CtrlIdx,
const TcpIp_SockAddrType* IpAddrPtr,
Syntax const uint8* PhysAddrPtr,
boolean valid
)

Sync/Async Synchronous

Reentrancy Non Reentrant

CtrlIdx EthIf controller index of the related ARP/NDP table.

IpAddrPtr specifies the IP address of the changed ARP/NDP table entry

Parameters (in) PhysAddr


specifies the physical address of the changed ARP/NDP table entry
Ptr

specifies if the ARP/NDP table entry is added or changed (TRUE) or


valid
has been removed (FALSE)

Parameters None
98 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

(inout)

Parameters
None
(out)

Return value None

This API is called by TcpIp in case of a change in the ARP/NDP table related to
Description
the controller specified by CtrlIdx.

Available via TcpIp_Externals.h

⌋()

99 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

8.6.3.3 SocketOwner functions

[SWS_TCPIP_00220]⌈ For sockets related to a TcpIpSocketOwner with


TcpIpSocketOwnerUpperLayerType set to ‘SOAD’, TcpIp shall replace the tag <Up>
with ‘SoAd’ for each of the following configurable interfaces.⌋(SRS_Eth_00103)

[SWS_TCPIP_00221]⌈ For sockets related to a TcpIpSocketOwner with


TcpIpSocketOwnerUpperLayerType set to ‘CDD’, TcpIp shall use the configured API
names for each of the following configurable interfaces.⌋(SRS_Eth_00103)

8.6.3.3.1 <Up_RxIndication>
[SWS_TCPIP_00223]⌈
Service Name <Up_RxIndication>

void <Up_RxIndication> (
TcpIp_SocketIdType SocketId,
const TcpIp_SockAddrType* RemoteAddrPtr,
Syntax
const uint8* BufPtr,
uint16 Length
)

Sync/Async Synchronous

Reentrancy Reentrant for different SocketIds. Non reentrant for the same SocketId.

SocketId Socket identifier of the related local socket resource.

RemoteAddr Pointer to memory containing IP address and port of the remote


Parameters Ptr host which sent the data.
(in)
BufPtr Pointer to the received data.

Length Data length of the received TCP segment or UDP datagram.

Parameters
None
(inout)

Parameters
None
(out)

Return value None

The TCP/IP stack calls this primitive after the reception of data on a socket. The
Description socket identifier along with configuration information determines which module is to
be called.

Available via configurable

⌋(SRS_Eth_00103)

8.6.3.3.2 <Up_TcpIpEvent>
[SWS_TCPIP_00224]⌈
Service Name <Up_TcpIpEvent>

100 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

void <Up_TcpIpEvent> (
TcpIp_SocketIdType SocketId,
Syntax TcpIp_EventType Event
)

Sync/Async Synchronous

Reentrancy Non Reentrant

SocketId Socket identifier of the related local socket resource.


Parameters (in)
Event This parameter contains a description of the event just encountered.

Parameters
None
(inout)

Parameters (out) None

Return value None

This service gets called if the stack encounters a condition described by the
Description
values in Event.

Available via configurable

⌋(SRS_Eth_00103)

8.6.3.3.3 <Up_TxConfirmation>
[SWS_TCPIP_00225]⌈
Service Name <Up_TxConfirmation>

void <Up_TxConfirmation> (
TcpIp_SocketIdType SocketId,
Syntax
uint16 Length
)

Sync/Async Synchronous

Reentrancy Reentrant for different SocketIds. Non reentrant for the same SocketId.

SocketId Socket identifier of the related local socket resource.


Parameters (in)
Length Number of transmitted data bytes.

Parameters
None
(inout)

Parameters
None
(out)

Return value None

The TCP/IP stack calls this function after the data has been acknowledged by the
peer for TCP.
Description
Caveats: The upper layer might not be able to determine exactly which data
bytes have been confirmed.

Available via configurable

101 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

⌋(SRS_Eth_00103)

8.6.3.3.4 <Up_TcpAccepted>
[SWS_TCPIP_00226]⌈
Service
<Up_TcpAccepted>
Name

Std_ReturnType <Up_TcpAccepted> (
TcpIp_SocketIdType SocketId,
Syntax TcpIp_SocketIdType SocketIdConnected,
const TcpIp_SockAddrType* RemoteAddrPtr
)

Sync/Async Synchronous

Reentrancy Non Reentrant

Socket identifier of the related local socket resource which has


SocketId
been used at TcpIp_Bind()
Parameters
SocketId Socket identifier of the local socket resource used for the
(in)
Connected established connection.

RemoteAddrPtr IP address and port of the remote host.

Parameters
None
(inout)

Parameters
None
(out)

Result of operation
E_OK upper layer accepts the established connection
Return value Std_ReturnType
E_NOT_OK upper layer refuses the established connection,
TcpIp stack shall close the connection.

This service gets called if the stack put a socket into the listen mode before (as
server) and a peer connected to it (as client). In detail: The TCP/IP stack calls this
Description
function after a socket was set into the listen state with TcpIp_TcpListen() and a TCP
connection is requested by the peer.

Available via configurable

⌋(SRS_Eth_00103)

8.6.3.3.5 <Up_TcpConnected>
[SWS_TCPIP_00227]⌈
Service
<Up_TcpConnected>
Name

void <Up_TcpConnected> (
Syntax TcpIp_SocketIdType SocketId
)

Sync/Async Synchronous

Reentrancy Non Reentrant


102 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Parameters
SocketId Socket identifier of the related local socket resource.
(in)

Parameters
None
(inout)

Parameters
None
(out)

Return value None

This service gets called if the stack initiated a TCP connection before (as client) and
the peer (the server) acknowledged the connection set up. In detail: The TCP/IP
Description stack calls this function after a socket was requested to connect with TcpIp_Tcp
Connect() and a TCP connection is confirmed by the peer. The parameter value of
SocketId equals the SocketId value of the preceeding TcpIp_TcpConnect() call.

Available via configurable

⌋(SRS_Eth_00103)

8.6.3.3.6 <Up_CopyTxData>
[SWS_TCPIP_00228]⌈
Service Name <Up_CopyTxData>

BufReq_ReturnType <Up_CopyTxData> (
TcpIp_SocketIdType SocketId,
Syntax uint8* BufPtr,
uint16 BufLength
)

Sync/Async Synchronous

Reentrancy Reentrant for different SocketIds. Non reentrant for the same SocketId.

SocketId Socket identifier of the related local socket resource.


Parameters
(in)
BufLength Length of provided data buffer.

Parameters
None
(inout)

Parameters
BufPtr Pointer to buffer for transmission data.
(out)

BUFREQ_OK: Data has been copied to the transmit buffer completely


as requested.
BufReq_-
Return value BUFREQ_E_NOT_OK: Data has not been copied. Request failed.
ReturnType
(No further action for TcpIp required. Later the upper layer might
either close the socket or retry the transmit request)

This service requests to copy data for transmission to the buffer indicated. This call
Description is triggered by TcpIp_Transmit(). Note: The call to <Up>_CopyTxData() may
happen in the context of TcpIp_Transmit().

Available via configurable

⌋(SRS_Eth_00103)
103 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

8.6.3.3.7 <Up_LocalIpAddrAssignmentChg>
[SWS_TCPIP_00229]⌈
Service Name <Up_LocalIpAddrAssignmentChg>

void <Up_LocalIpAddrAssignmentChg> (
TcpIp_LocalAddrIdType IpAddrId,
Syntax TcpIp_IpAddrStateType State
)

Sync/Async Synchronous

Reentrancy Non Reentrant

IpAddr IP address Identifier, representing an IP address specified in the TcpIp


Parameters Id module configuraiton (e.g. static IPv4 address on EthIf controller 0).
(in)
State state of IP address assignment

Parameters
None
(inout)

Parameters
None
(out)

Return value None

This service gets called by the TCP/IP stack if an IP address assignment changes
Description
(i.e. new address assigned or assigned address becomes invalid).

Available via configurable

⌋(SRS_Eth_00103)

8.6.3.4 < Up_IcmpMsgHandler>


[SWS_TCPIP_00270]⌈
Service Name <Up_IcmpMsgHandler>

void <Up_IcmpMsgHandler> (
TcpIp_LocalAddrIdType LocalAddrId,
const TcpIp_SockAddrType* RemoteAddrPtr,
uint8 Ttl,
Syntax uint8 Type,
uint8 Code,
uint16 DataLength,
uint8* DataPtr
)

Sync/Async Synchronous

Reentrancy Non Reentrant

LocalAddr Local address identifier representing the local IP address and EthIf
Id controller where the ICMP message has been received.
Parameters
(in)
Remote
pointer to struct representing the address of the ICMP sender
AddrPtr

104 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Time to live value of the received ICMPv4 message or Hop Limit


Ttl
value of the received ICMPv6 message.

type field value of the reveived ICMP message (Note: the value of the
Type type field determines the format of the remaining ICMP message
data)

Code code field value of the received ICMP message

Data
length of ICMP message
Length

DataPtr Pointer to the received ICMP message

Parameters
None
(inout)

Parameters
None
(out)

Return value None

By this API service the configured ICMP message handler function is called by the
Description TCP/IP stack on reception of a ICMP message which is not handled by the TCP/IP
stack.

Available via TcpIp_Externals.h

⌋()

8.6.3.5 <Up_DADAddressConflict>
[SWS_TCPIP_91005]⌈
Service Name <Up_DADAddressConflict>

void <Up_DADAddressConflict> (
TcpIp_LocalAddrIdType IpAddrId,
const TcpIp_SockAddrType* IpAddrPtr,
Syntax const uint8* LocalPhysAddrPtr,
const uint8* RemotePhysAddrPtr
)

Service ID
0x1e
[hex]

Sync/Async Synchronous

Reentrancy Reentrant

IP address Identifier, representing an IP address specified in the


IpAddrId
TcpIp module configuration.

IpAddrPtr Pointer to a struct where the conflicted IP address is stored.


Parameters
Pointer to the memory where the local physical address (MAC
(in) LocalPhys
address) related to the specified IP address is stored in network
AddrPtr
byte order.

RemotePhys Pointer to the memory where the remote physical address (MAC
AddrPtr address) related to the specified IP address is stored in network
105 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

byte order.

Parameters
None
(inout)

Parameters
None
(out)

Return value void --

This API is called by TcpIp in case the Duplicate Address Detection (DAD) is
Description
enabled and detecting a duplicate IP Address.

Available via TcpIp_Externals.h

⌋()

[SWS_TCPIP_00283]⌈ If the optional TcpIpDuplicateAddressDetectionConfig is


defined and a duplicate IP address was found by the Duplicate Address Detection
(DAD) algorithm, the TcpIp shall call the callout function specified by
TcpIpDuplicateAddressDetectionCalloutName.⌋(SRS_Eth_00091,
SRS_BSW_00452)

8.6.3.6 <Up_TlsGetCurrentTimeStamp>
[SWS_TCPIP_91012]⌈
Service Name <Up_TlsGetCurrentTime>

Std_ReturnType <Up_TlsGetCurrentTime> (
Syntax uint32* CurrentTimeUtc
)

Sync/Async Synchronous

Reentrancy Reentrant

Parameters (in) None

Parameters
None
(inout)

Parameters CurrentTime
Pointer to uint32 to provide the GMT Unix time value.
(out) Utc

E_OK: Time stamp successfully provided.


Std_Return-
Return value E_NOT_OK: Time stamp can currently not be provided. Data in
Type
CurrentTimeUtc not valid.

This function queries the current time. This information will be requested when
Description
assembling the client hello message.

Available via TcpIp_Externals.h

⌋()

106 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00330] ⌈If the optional parameter TcpIpTlsConnectionGetTimeFunc is


defined the TLS_CLIENT shall call the configured function to query the current time.
The value 0 indicates that no time is available. The value 0 is also transmitted if the
function returns E_NOT_OK.
⌋()

[SWS_TCPIP_00332] ⌈The function <Up_TlsGetCurrentTime>() shall provide the


current UTC time. It is used to assemble the ClientHello handshake message. The
time is provided in big endian format and follows either the GMT Unix time format or
can be 0 (See IETF RFC 5246, section 7.4.1.2, gmt_unix_time for details).
⌋()

8.6.3.7 <Up_TlsServerGetPskIdentityHint>
[SWS_TCPIP_91013]⌈
Service Name <Up_TlsServerGetPskIdentityHint>

Std_ReturnType <Up_TlsServerGetPskIdentityHint> (
TcpIp_SocketIdType SocketId,
TcpIp_TlsConnectionIdType TlsConnectionId,
Syntax
uint16* IdentityHintLengthPtr,
uint8* IdentityHintPtr
)

Sync/Async Synchronous

Reentrancy Reentrant

SocketId Socket identifier of the related local socket resource.


Parameters
(in) TlsConnection
Provides the TLS connection identifier.
Id

In: Provides the number of bytes available where identityHintPtr


Parameters IdentityHint
links to. Out: Provides the number of bytes that has been
(inout) LengthPtr
overwritten in identityHintPtr.

Parameters
IdentityHintPtr Ptr to buffer that is used to store the IdentityHint information.
(out)

E_OK: IdentityHint successfully provided


Std_Return-
Return value E_NOT_OK: IdentityHint could not be provided. Data in the
Type
pointer is invalid and shall not be used.

Queries the Identity hint for a pre-shared key ciphersuite. This information is
Description
transmitted by the TLS Server to provide its identification to the TLS client.

Available via TcpIp_Externals.h

⌋(SRS_Eth_00137)

[SWS_TCPIP_00333] ⌈If the TLS_SERVER selects a PSK ciphersuite from the


offered ciphersuite list and TcpIpTlsPresharedKeyIdentityHint is not defined but

107 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpTlsPskGetKeyIdentyHintFunc is defined, then this function shall be called when


the TLS_SERVER assembles the ServerKeyExchange message (according to
RFC4279, Sect. 2) during the handshake to query the psk_identity_hint.
⌋()

8.6.3.8 <Up_TlsClientGetPskIdentity >


[SWS_TCPIP_91014]⌈
Service
<Up_TlsClientGetPskIdentity>
Name

Std_ReturnType <Up_TlsClientGetPskIdentity> (
TcpIp_SocketIdType SocketId,
TcpIp_TlsConnectionIdType TlsConnectionId,
uint16 PskIdentityHintLength,
Syntax const uint8* PskIdentityHintPtr,
uint16* PskKeyIdentityLengthPtr,
uint8* PskKeyIdentityPtr,
uint32* CsmKeyId
)

Sync/Async Synchronous

Reentrancy Reentrant

SocketId Socket identifier of the related local socket resource.

TlsConnectionId Provides the TLS connection identifier.


Parameters
PskIdentityHint
(in) Provides the number of bytes available in identityHintPtr.
Length

PskIdentityHint
Pointer to the identity hint information from the server.
Ptr

In: Provides the number of bytes available in PskKeyIdentityPtr.


Parameters PskKeyIdentity
Out: Provides the actual number of bytes that has been written
(inout) LengthPtr
to PskKeyIdentityPtr.

PskKeyIdentity
Buffer that is used to store the pre-shared key identification.
Parameters Ptr
(out)
CsmKeyId Provides the identifier of a CSM key.

E_OK: Pre-Shared key selected properly. All output values are


valid.
Return value Std_ReturnType
E_NOT_OK: Pre-Shared key could not be selected. Key
selection failed.

This function is called on the TLS client side. It provides the key identification based
Description on the identity hint provided by the TLS server. The TLS client selects the pre-
shared key and returns the key identification name and the CSM key reference.

Available via TcpIp_Externals.h

⌋(SRS_Eth_00137)

108 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00334] ⌈If the TLS_CLIENT receives a selected PSK ciphersuite and


TcpIpTlsPresharedKeyIdentityHint or TcpIpTlsPresharedKeyIdentity or
TcpIpTlsPresharedKeyCsmKeyRef is not defined but
TcpIpTlsPskGetClientKeyIdentityFunc is defined, then this function shall be called
when the TLS_CLIENT assembles the ClientKeyExchange message (according to
RFC4279, Sect. 2). The function provides the pre-shared key and the psk_identity
which is provided in the ClientKeyExchange message.
⌋()

8.6.3.9 <Up_TlsServerGetPskIdentity>

[SWS_TCPIP_91015]⌈
Service
<Up_TlsServerGetPskIdentity>
Name

Std_ReturnType <Up_TlsServerGetPskIdentity> (
TcpIp_SocketIdType SocketId,
TcpIp_TlsConnectionIdType TlsConnectionId,
Syntax uint16 PskKeyIdentityLength,
const uint8* PskKeyIdentityPtr,
uint32* CsmKeyId
)

Sync/Async Synchronous

Reentrancy Reentrant

SocketId Socket identifier of the related local socket resource.

TlsConnectionId Provides the TLS connection identifier.


Parameters
Provides the number of bytes available in PskKeyIdentity
(in) PskKeyIdentityLength
Ptr.

Pointer to a buffer that provides the PSK key identification


PskKeyIdentityPtr
information.

Parameters
None
(inout)

Parameters
CsmKeyId Provides the identifier of a CSM key.
(out)

E_OK: PSK key was identified and CsmKey reference


provided properly.
Return value Std_ReturnType
E_NOT_OK: Key identification or PSK key could not be
identified.

This callback is used for the TLS server to provide the CSM key name according to
Description the key identification that was selected by the TLS client. The TLS server must
provide a CsmKey reference to a key that matches this key identification name.

Available via TcpIp_Externals.h

⌋(SRS_Eth_00137)
109 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

[SWS_TCPIP_00335] ⌈If the TLS_SERVER receives the ClientKeyExchange


message during the handshake and TcpIpTlsPresharedKeyIdentity or
TcpIpTlsPresharedKeyCsmKeyRef is not defined but
TcpIpTlsPskGetServerKeyIdentityFunc is defined, then this function shall be called
when the TLS_CLIENT assembles the ClientKeyExchange message (according to
RFC4279, Sect. 2). The function provides the pre-shared key and the psk_identity
which is provided in the ClientKeyExchange message.
⌋()

110 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

9 Sequence diagrams
Note: The following sequence charts showcase SoAd as upper layer of TcpIp. They
shall be understood as example for any other configurable upper layer module.

111 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

9.1 TCP Connection Setup – Client

«module» «module» «module»


:SoAd :TcpIp :EthIf

loop each socket connection configured as 'client' connection

TcpIp_SoAdGetSocket(Std_ReturnType,
TcpIp_DomainType, TcpIp_ProtocolType,
TcpIp_SoHandleType**)

Allocate/Initialize socket
resource

opt
TcpIp_Bind(Std_ReturnType, TcpIp_SocketIdType,
TcpIp_LocalAddrIdType, uint16**)

opt TCP socket


TcpIp_TcpConnect(Std_ReturnType,
TcpIp_SocketIdType, const
TcpIp_SockAddrType*)

TcpIp_MainFunction()

ProvideTxBuffer(BufReq_ReturnType, uint8,
Eth_FrameType, uint8, Eth_BufIdxType**, uint8***,
uint16**)

Send SYN frame EthIf_Transmit(Std_ReturnType, uint8,


Eth_BufIdxType, Eth_FrameType, boolean, uint16,
const uint8*)

EthIf_MainFunctionRx()

TcpIp_RxIndication(uint8,
Eth_FrameType, boolean, const uint8*,
const uint8*, uint16)
Receive SYN ACK frame

TcpIp_MainFunction()

ProvideTxBuffer(BufReq_ReturnType, uint8,
Eth_FrameType, uint8, Eth_BufIdxType**,
uint8***, uint16**)

Send ACK frame to EthIf_Transmit(Std_ReturnType, uint8,


finish 3-way handshake Eth_BufIdxType, Eth_FrameType, boolean, uint16,
const uint8*)

SoAd_TcpConnected(TcpIp_SocketIdType)

112 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

9.2 TCP Connection Setup – Server

«module» «module» «module»


:SoAd :TcpIp :EthIf

loop each socket connection configured as 'listen' connection

TcpIp_SoAdGetSocket(Std_ReturnType,
TcpIp_DomainType, TcpIp_ProtocolType,
TcpIp_SocketIdType**)

Allocate/Initialize socket
resource

TcpIp_Bind(Std_ReturnType, TcpIp_SocketIdType,
TcpIp_LocalAddrIdType, uint16**)

opt TCP socket

TcpIp_TcpListen(Std_ReturnType, TcpIp_SocketIdType, uint16)

Connection attempt
from remote host.

opt TCP socket


EthIf_MainFunctionRx()
TcpIp_RxIndication(uint8,
Eth_FrameType, boolean, const uint8*,
const uint8*, uint16)
Receive SYN frame

TcpIp_MainFunction()

ProvideTxBuffer(BufReq_ReturnType, uint8,
Eth_FrameType, uint8, Eth_BufIdxType**,
uint8***, uint16**)

Send SYN ACK frame


EthIf_Transmit(Std_ReturnType, uint8,
Eth_BufIdxType, Eth_FrameType, boolean,
uint16, const uint8*)

EthIf_MainFunctionRx()

Receive ACK frame


TcpIp_RxIndication(uint8,
which finishes 3-way
Eth_FrameType, boolean, const uint8*,
TCP handshakeconst uint8*, uint16)

SoAd_TcpAccepted(Std_ReturnType, TcpIp_SocketIdType,
TcpIp_SocketIdType, TcpIp_SockAddrType*)

113 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

9.3 Reception

«module» «module» «module»


:SoAd :TcpIp :EthIf

EthIf_MainFunctionRx()

TcpIp_RxIndication(uint8,
Eth_FrameType, boolean, const uint8*,
const uint8*, uint16)

IP, UDP/TCP processing


TCP: Decrease receive
window

SoAd_RxIndication(TcpIp_SocketIdType,
TcpIp_SockAddrType, uint8*, uint16)

find related PduId and UL for


received datagram/segment
and process frame

opt TCP socket

SoAd_MainFunction()

TcpIp_TcpReceived(Std_ReturnType,
TcpIp_SocketIdType, uint32)

TCP: Increase receive


window

TcpIp_MainFunction()

ProvideTxBuffer(BufReq_ReturnType, uint8,
Eth_FrameType, uint8, Eth_BufIdxType**, uint8***,
uint16**)

Acknowledge received
EthIf_Transmit(Std_ReturnType, uint8,
data for one or several
Eth_BufIdxType, Eth_FrameType, boolean,
received segments.
uint16, const uint8*)

Note: Even it is not shown in the sequence diagram of section 9.3, TcpIp may
decouple the data reception if required. E.g. for reassembling of incoming IP
datagrams that are fragmented, TcpIp shall copy the received data to a TcpIp buffer
and decouple TcpIp_RxIndication() from SoAd_RxIndication().

114 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

9.4 Transmission TCP

115 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

«module» «module» «module»


:SoAd :TcpIp :EthIf

TcpIp_TcpTransmit(Std_ReturnType,
TcpIp_SocketIdType, const uint8*,
uint32, boolean)

loop until all buffer segments filled OR no buffer space left

Acquire TcpIp Buffer

alt data provision

[direct data provision (DataPtr != NULL)]

Copy data from DataPtr


into TcpIp buffer

[indirect data provision (DataPtr == NULL)]

SoAd_CopyTxData(BufReq_ReturnType,
TcpIp_SocketIdType, uint8*, uint16)

opt PDU header enabled AND begin of I-PDU

Write PDU header into


TcpIp buffer

Copy data from UL


buffer into TcpIp buffer

Enqueue TCP segment

TcpIp_MainFunction()

ProvideTxBuffer(BufReq_ReturnType, uint8,
Eth_FrameType, uint8, Eth_BufIdxType**, uint8***,
uint16**)

Write VLAN tag


(if any)

Copy data from TcpIp


buffer to Eth buffer

EthIf_Transmit(Std_ReturnType, uint8,
Eth_BufIdxType, Eth_FrameType, boolean,
uint16, const uint8*)

Transmit frame

TcpIp_RxIndication(uint8,
Eth_FrameType, boolean, const uint8*,
const uint8*, uint16)
TCP ACK received

Release TcpIp buffer

SoAd_TxConfirmation(TcpIp_SocketIdType, uint16)

116 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

9.5 Transmission UDP

«module» «module» «module»


:SoAd :TcpIp :EthIf

TcpIp_UdpTransmit(Std_ReturnType, TcpIp_SocketIdType,
const uint8*, const TcpIp_SockAddrType*, uint16)

ARP lookup for


remote address

alt ARP/NDP cache


ProvideTxBuffer(BufReq_ReturnType, uint8,
[miss (entry does not exist)] Eth_FrameType, uint8, Eth_BufIdxType**, uint8***,
uint16**)

Write VLAN tag


Send ARP request for (if any)
destination address.
EthIf_Transmit(Std_ReturnType, uint8,
Eth_BufIdxType, Eth_FrameType, boolean,
uint16, const uint8*)

Transmit frame

opt TcpIpArpPacketQueueEnabled/TcpIpNdpPacketQueueEnabled set to TRUE

Store frame for later transmission after destination address resolution is


completed

[hit (entry exists)]


ProvideTxBuffer(BufReq_ReturnType, uint8,
Eth_FrameType, uint8, Eth_BufIdxType**, uint8***,
uint16**)

Write VLAN tag


(if any)

alt data provision


[direct data provision (DataPtr != NULL)]
Copy data from DataPtr
to Eth buffer

[indirect data provision (DataPtr == NULL)]


SoAd_CopyTxData(BufReq_ReturnType,
TcpIp_SocketIdType, uint8*, uint16)

opt PDU header enabled AND begin of I-PDU

Write PDU header into


Eth buffer

Copy data from UL/SoAd


buffer to Eth buffer

EthIf_Transmit(Std_ReturnType, uint8,
Eth_BufIdxType, Eth_FrameType, boolean,
uint16, const uint8*)

Transmit frame

117 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

9.6 Connection setup for a TLS server

TcpIp

«module» «module» «module» «module»


TCP TLS :KeyM :Csm

Initialize TLS
connection for a socket

<<open TLS connection>>()

Client hello

<<received data to TLS>>()

KeyM_GetCertificate(Std_ReturnType, KeyM_CertificateIdType, KeyM_CertDataType**): int

<<key exchange step 1>>()

<<MAC generation>>()

Server hello

<<TCP send request>>()

Key exchange

<<received data to TLS>>()


<<authentication>>()

<<key exchange step 2>>()

<<MAC generation>>()

Finished

<<TCP send request>>()

Finished

<<received data to TLS>>()


<<MAC verification>>()

<<distribute master key to CSM jobs>>()

118 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

9.7 TLS connection assignment to socket

TcpIp

«module» «module» «module» «module»


:SoAd TCP: TcpIp TLS :EthIf

TcpIp_SoAdGetSocket()

TcpIp_Bind(Std_ReturnType, TcpIp_SocketIdType, TcpIp_LocalAddrIdType, uint16**)

opt SoAd assigns TLS connection

TcpIp_ChangeParameter(Std_ReturnType, TcpIp_SocketIdType, TcpIp_ParamIdType, const uint8*)

TLS connection
assignment to socket

Check TLS channel list.


Search for IpAddress.

TcpIp_TcpListen(Std_ReturnType, TcpIp_SocketIdType, uint16)

Receive SYN

TcpIp_RxIndication(uint8, Eth_FrameType, boolean, const uint8*, const uint8*, uint16)

opt Port configuration for TLS connection

Check port assignment for TLS


connection if not yet already
assigned to TLS and assign TLS
connection if port matches.
Send SYN ACK

EthIf_Transmit(Std_ReturnType, uint8, Eth_BufIdxType, Eth_FrameType, boolean, uint16, const uint8*)

Receive ACK

TcpIp_RxIndication(uint8, Eth_FrameType, boolean, const uint8*, const uint8*, uint16)

Socket assigned to
TLS connection

<<received data to TLS>>()

119 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10 Configuration specification
In general, this chapter defines configuration parameters and their clustering into
containers. In order to support the specification Chapter 10.1 describes
fundamentals. It also specifies a template (table) you shall use for the parameter
specification. We intend to leave Chapter 10.1 in the specification to guarantee
comprehension.

Chapter 10.2 specifies the structure (containers) and the parameters of the module
TcpIp.

Chapter 10.3 specifies published information of the module TcpIp.

10.1 How to read this chapter


For details refer to the chapter 10.1 “Introduction to configuration specification” in
SWS_BSWGeneral.

10.2 Containers and configuration parameters


The following chapters summarize all configuration parameters. The detailed
meanings of the parameters describe Chapters 7 and Chapter 8.

TcpIp: EcucModuleDef
+container TcpIpGeneral:
lowerMultiplicity = 0 EcucParamConfContainerDef
upperMultiplicity = 1

+container TcpIpConfig: EcucParamConfContainerDef

10.2.1 TcpIp

SWS Item ECUC_TcpIp_00001 :


Module Name TcpIp
Module Description Configuration of the TcpIp (TCP/IP stack) module.
Post-Build Variant Support true
Supported Config Variants VARIANT-LINK-TIME, VARIANT-POST-BUILD, VARIANT-PRE-COMPILE

Included Containers
Container Name Multiplicity Scope / Dependency
This container contains the configuration parameters and sub
TcpIpConfig 1
containers of the AUTOSAR TcpIp module.
This container is a subcontainer of TcpIp and specifies the
TcpIpGeneral 1
general configuration parameters of the TCP/IP stack.

120 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

121 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpDevErrorDetect:
TcpIpGeneral:
+parameter EcucBooleanParamDef
EcucParamConfContainerDef
defaultValue = false
TcpIpBufferMemory:
+parameter EcucIntegerParamDef

min = 0
TcpIpMainFunctionPeriod: max = 4294967295
+parameter
EcucFloatParamDef

min = 0
max = INF

TcpIpTcpEnabled:
+parameter EcucBooleanParamDef

TcpIpTcpSocketMax:
+parameter EcucIntegerParamDef

min = 0
max = 65535
TcpIpUdpEnabled:
+parameter EcucBooleanParamDef

TcpIpUdpSocketMax:
+parameter EcucIntegerParamDef

min = 0
max = 65535
TcpIpVersionInfoApi:
+parameter EcucBooleanParamDef

defaultValue = false

TcpIpScalabilityClass:
EcucEnumerationParamDef +literal SC1:
EcucEnumerationLiteralDef

+parameter +literal SC2:


EcucEnumerationLiteralDef

+literal SC3:
EcucEnumerationLiteralDef

TcpIpIpV4General: TcpIpArpEnabled:
+parameter
EcucParamConfContainerDef EcucBooleanParamDef

TcpIpDhcpClientEnabled:
+parameter EcucBooleanParamDef

TcpIpAutoIpEnabled:
+parameter EcucBooleanParamDef

+parameter TcpIpPathMtuDiscoveryEnabled:
EcucBooleanParamDef
+subContainer
TcpIpLocalAddrIpv4EntriesMax:
+parameter
EcucIntegerParamDef

min = 0
max = 255
TcpIpIcmpEnabled:
+parameter EcucBooleanParamDef

TcpIpIpV4Enabled:
+parameter
EcucBooleanParamDef

TcpIpIpV6General: TcpIpLocalAddrIpv6EntriesMax:
+parameter EcucIntegerParamDef
EcucParamConfContainerDef
min = 0
max = 255

+parameter TcpIpIpV6Enabled:
EcucBooleanParamDef

+parameter TcpIpIpV6PathMtuDiscoveryEnabled:
EcucBooleanParamDef

+subContainer
+parameter TcpIpNdpAddressResolutionUnrechabilityDetectionEnabled:
EcucBooleanParamDef

+parameter TcpIpNdpPrefixAndRouterDiscoveryEnabled:
EcucBooleanParamDef

+parameter TcpIpDhcpV6ClientEnabled:
EcucBooleanParamDef

+parameter TcpIpResetIpAssignmentApi:
EcucBooleanParamDef
+parameter TcpIpDhcpServerEnabled:
EcucBooleanParamDef
+parameter TcpIpGetAndResetMeasurementDataApi:
EcucBooleanParamDef
+parameter TcpIpEnableSecurityEventReporting:
EcucBooleanParamDef

defaultValue = false
TcpIpSecurityEventRefs:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1

122 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.2 TcpIpGeneral

SWS Item ECUC_TcpIp_00002 :


Container Name TcpIpGeneral
Parent Container TcpIp
This container is a subcontainer of TcpIp and specifies the general
Description
configuration parameters of the TCP/IP stack.
Configuration Parameters

SWS Item ECUC_TcpIp_00016 :


Name TcpIpBufferMemory
Parent Container TcpIpGeneral
Description Memory size in bytes reserved for TCP/IP buffers.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 4294967295
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00004 :


Name TcpIpDevErrorDetect
Parent Container TcpIpGeneral
Description Switches the development error detection and notification on or off.

 true: detection and notification is enabled.


 false: detection and notification is disabled.

Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00183 :


Name TcpIpDhcpServerEnabled
Parent Container TcpIpGeneral
Description Enables (TRUE) or disables (FALSE) the DHCP (Dynamic Host
Configuration Protocol) Server.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00319 :

123 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Name TcpIpEnableSecurityEventReporting
Parent Container TcpIpGeneral
Description Switches the reporting of security events to the IdsM:
- true: reporting is enabled.
- false: reporting is disabled.
Tags:
atp.Status=draft
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: ECU

SWS Item ECUC_TcpIp_00217 :


Name TcpIpGetAndResetMeasurementDataApi
Parent Container TcpIpGeneral
Description Enables / Disables the Get and Reset Measurement Data API
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00013 :


Name TcpIpMainFunctionPeriod
Parent Container TcpIpGeneral
Description Period of TcpIp_MainFunction in [s].
Multiplicity 1
Type EcucFloatParamDef
Range ]0 .. INF[
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00182 :


Name TcpIpResetIpAssignmentApi
Parent Container TcpIpGeneral
Description Enables/disables the API TcpIp_ResetIpAssignment of a DHCP-client.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

124 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00169 :


Name TcpIpScalabilityClass
Parent Container TcpIpGeneral
Description In order to customize the TcpIp Stack to the specific needs of the user it can be
scaled according to the scalability classes.
Multiplicity 1
Type EcucEnumerationParamDef
Range SC1 IPv4 - In-Vehicle and Diagnostic
Communication
SC2 IPv6 - In-Vehicle and Diagnostic
Communication
SC3 IPv4 and IPv6 (Dual Stack) - In-Vehicle
and Diagnostic Communication
Post-Build Variant
false
Value
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_TcpIp_00008 :


Name TcpIpTcpEnabled
Parent Container TcpIpGeneral
Description Enables (TRUE) or disabled (FALSE) support of TCP (Transmission
Control Protocol).
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00014 :


Name TcpIpTcpSocketMax
Parent Container TcpIpGeneral
Description Maximum number of TCP sockets
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00009 :


Name TcpIpUdpEnabled
Parent Container TcpIpGeneral
Description Enables (TRUE) or disabled (FALSE) support of UDP (User Datagram
Protocol)
Multiplicity 1
125 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00015 :


Name TcpIpUdpSocketMax
Parent Container TcpIpGeneral
Description Maximum number of UDP sockets.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00005 :


Name TcpIpVersionInfoApi
Parent Container TcpIpGeneral
Description If true the TcpIp_GetVersionInfo API is available.
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
This container is a subcontainer of TcpIp and specifies the
TcpIpIpV4General 1
general configuration parameters of the TCP/IP stack for IPv4
This container is a subcontainer of TcpIp and specifies the
TcpIpIpV6General 1
general configuration parameters of the TCP/IP stack for IPv6.
Container for the references to IdsMEvent elements
representing the security events that the TcpIp module shall
report to the IdsM in case the coresponding security related
event occurs (and if TcpIpEnableSecurityEventReporting is set
TcpIpSecurityEventRefs 0..1
to "true"). The standardized security events in this container
can be extended by vendor-specific security events.
Tags:
atp.Status=draft

10.2.3 TcpIpIpV4General

126 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00163 :


Container Name TcpIpIpV4General
Parent Container TcpIpGeneral
This container is a subcontainer of TcpIp and specifies the general
Description
configuration parameters of the TCP/IP stack for IPv4
Configuration Parameters

SWS Item ECUC_TcpIp_00006 :


Name TcpIpArpEnabled
Parent Container TcpIpIpV4General
Description Enables (TRUE) or disables (FALSE) support of ARP (Address Resolution
Protocol).
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00011 :


Name TcpIpAutoIpEnabled
Parent Container TcpIpIpV4General
Description Enables (TRUE) or disables (FALSE) the Auto-IP (automatic private IP
addressing) sub-module.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00010 :


Name TcpIpDhcpClientEnabled
Parent Container TcpIpIpV4General
Description Enables (TRUE) or disables (FALSE) the DHCP (Dynamic Host
Configuration Protocol) Client.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00007 :


Name TcpIpIcmpEnabled
Parent Container TcpIpIpV4General
Description Enables (TRUE) or disabled (FALSE) support of ICMP (Internet Control
Message Protocol).
Multiplicity 1
Type EcucBooleanParamDef
127 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00088 :


Name TcpIpIpV4Enabled
Parent Container TcpIpIpV4General
Description Enables (TRUE) or disables (FALSE) support of IPv4 (Internet Protocol
version 4).
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00018 :


Name TcpIpLocalAddrIpv4EntriesMax
Parent Container TcpIpIpV4General
Description Maximum number of LocalAddr table entries for IPv4.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 255
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00012 :


Name TcpIpPathMtuDiscoveryEnabled
Parent Container TcpIpIpV4General
Description Enables (TRUE) or disables (FALSE) the discovery of the maximum
transmission unit on a path according to IETF RfC 1191.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

10.2.4 TcpIpIpV6General
128 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00164 :


Container Name TcpIpIpV6General
Parent Container TcpIpGeneral
This container is a subcontainer of TcpIp and specifies the general
Description
configuration parameters of the TCP/IP stack for IPv6.
Configuration Parameters

SWS Item ECUC_TcpIp_00093 :


Name TcpIpDhcpV6ClientEnabled
Parent Container TcpIpIpV6General
Description Enables (TRUE) or disables (FALSE) the DHCPv6 (Dynamic Host
Configuration Protocol for IPv6) Client.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00089 :


Name TcpIpIpV6Enabled
Parent Container TcpIpIpV6General
Description Enables (TRUE) or disables (FALSE) support of IPv6 (Internet Protocol
version 6).
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00090 :


Name TcpIpIpV6PathMtuDiscoveryEnabled
Parent Container TcpIpIpV6General
Description Enables (TRUE) or disables (FALSE) Path MTU Discovery support for
IPv6 according to IETF RFC 1981.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00017 :


Name TcpIpLocalAddrIpv6EntriesMax
Parent Container TcpIpIpV6General
Description Maximum number of LocalAddr table entries for IPv6.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 255
129 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00091 :


Name TcpIpNdpAddressResolutionUnrechabilityDetectionEnabled
Parent Container TcpIpIpV6General
Description Enables (TRUE) or disables (FALSE) support of Address Resoultion and
Neighbor Unreachability Detetion via NDP.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00092 :


Name TcpIpNdpPrefixAndRouterDiscoveryEnabled
Parent Container TcpIpIpV6General
Description Enables (TRUE) or disables (FALSE) support of Prefix and Router
Discovery via NDP.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

130 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpGeneral:
EcucParamConfContainerDef +parameter TcpIpEnableSecurityEventReporting:
EcucBooleanParamDef

defaultValue = false

+subContainer

TcpIpSecurityEventRefs: TCPIP_SEV_ARP_IP_ADDR_CONFLICT: IdsMEvent:


EcucParamConfContainerDef +reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0 lowerMultiplicity = 1


upperMultiplicity = 1 upperMultiplicity = 1 upperMultiplicity = 65535
requiresSymbolicNameValue = true

TCPIP_SEV_DROP_INV_PORT_TCP:
EcucReferenceDef +destination
+reference
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

TCPIP_SEV_DROP_INV_PORT_UDP:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

TCPIP_SEV_DROP_INV_IPV4_ADDR:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

TCPIP_SEV_DROP_INV_IPV6_ADDR:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

(from IdsM)

10.2.5 TcpIpSecurityEventRefs

SWS Item ECUC_TcpIp_00320 :


Container Name TcpIpSecurityEventRefs
Parent Container TcpIpGeneral
Container for the references to IdsMEvent elements representing the
security events that the TcpIp module shall report to the IdsM in case the
coresponding security related event occurs (and if
TcpIpEnableSecurityEventReporting is set to "true"). The standardized
Description
security events in this container can be extended by vendor-specific
security events.
Tags:
atp.Status=draft
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_TcpIp_00321 :


131 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Name TCPIP_SEV_ARP_IP_ADDR_CONFLICT
Parent Container TcpIpSecurityEventRefs
Description Received local IP address in ARP reply for different MAC.
Tags:
atp.Status=draft
Multiplicity 0..1
Type Symbolic name reference to [ IdsMEvent ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00324 :


Name TCPIP_SEV_DROP_INV_IPV4_ADDR
Parent Container TcpIpSecurityEventRefs
Description Dropped datagram because of invalid IPV4 address.
Tags:
atp.Status=draft
Multiplicity 0..1
Type Symbolic name reference to [ IdsMEvent ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00325 :


Name TCPIP_SEV_DROP_INV_IPV6_ADDR
Parent Container TcpIpSecurityEventRefs
Description Dropped datagram because of invalid IPV6 address.
Tags:
atp.Status=draft
Multiplicity 0..1
Type Symbolic name reference to [ IdsMEvent ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

132 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00322 :


Name TCPIP_SEV_DROP_INV_PORT_TCP
Parent Container TcpIpSecurityEventRefs
Description Dropped TCP packet because of invalid destination TCP-Port.
Tags:
atp.Status=draft
Multiplicity 0..1
Type Symbolic name reference to [ IdsMEvent ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00323 :


Name TCPIP_SEV_DROP_INV_PORT_UDP
Parent Container TcpIpSecurityEventRefs
Description Dropped UDP packet because of invalid destination UDP-Port.
Tags:
atp.Status=draft
Multiplicity 0..1
Type Symbolic name reference to [ IdsMEvent ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

133 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpConfig: TcpIpCtrl:
EcucParamConfContainerDef +subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

TcpIpIpConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpLocalAddr:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

TcpIpPhysAddrConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpTcpConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpUdpConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpSocketOwnerConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = 1

TcpIpDhcpServerConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = *

TcpIpNvmBlock:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpTlsConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpDuplicateAddressDetectionConfig:
EcucParamConfContainerDef
TcpIpDuplicateAddressDetectionCalloutName:
+subContainer EcucFunctionNameDef
lowerMultiplicity = 0 +parameter
upperMultiplicity = 1

TcpIpIpSecConfigSet:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = *

134 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.6 TcpIpConfig

SWS Item ECUC_TcpIp_00003 :


Container Name TcpIpConfig
Parent Container TcpIp
This container contains the configuration parameters and sub containers of
Description
the AUTOSAR TcpIp module.
Configuration Parameters

Included Containers
Container Name Multiplicity Scope / Dependency
Specifies the EthIf controller used for IP
TcpIpCtrl 1..*
communication.
Specifies the configuration parameters of the DHCP
TcpIpDhcpServerConfig 0..*
Server sub-module.
TcpIpDuplicateAddressDetectionConfi
0..1 Specifies the DAD callout function.
g
Specifies the configuration parameters of the IP
TcpIpIpConfig 0..1
(Internet Protocol) sub-module
TcpIpIpSecConfigSet 0..* Specifies the IPsec configuration.
Specifies the local IP (Internet Protocol) addresses
TcpIpLocalAddr 1..*
used for IP communication.
Configuration of optional usage of Nvm in case the
TcpIp module requires non volatile memory in the
TcpIpNvmBlock 0..1
Ecu to store information (e.g. IP Address received
via DHCP and shall be stored).
TcpIpPhysAddrConfig 0..1 Specifies the physical address configuration.
Specifies the upper layer modules of TcpIp using the
TcpIpSocketOwnerConfig 1
socket API.
Specifies the configuration parameters of the TCP
TcpIpTcpConfig 0..1
(Transmission Control Protocol) sub-module.
Specifies the configuration parameters of the TLS
TcpIpTlsConfig 0..1
(Transport Layer Security) sub module.
Specifies the configuration parameters of the UDP
TcpIpUdpConfig 0..1
(User Datagram Protocol) sub-module

135 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpEthIfCtrlRef: EcucReferenceDef +destination EthIfController:


+reference EthIfCtrlIdx:
TcpIpCtrl: EcucParamConfContainerDef
+parameter EcucIntegerParamDef
EcucParamConfContainerDef requiresSymbolicNameValue = true
lowerMultiplicity = 1
min = 0
lowerMultiplicity = 1 upperMultiplicity = *
max = 255
upperMultiplicity = *
symbolicNameValue = true
TcpIpDhcpServerConfigRef:
+reference EcucReferenceDef

lowerMultiplicity = 0 +destination
TcpIpDhcpServerConfig:
upperMultiplicity = 1
EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = *
TcpIpIpFramePrioDefault:
EcucIntegerParamDef

+parameter min = 0
max = 7
defaultValue = 0
lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpIpVXCtrl: TcpIpIpV4Ctrl:
EcucChoiceContainerDef +choice EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer

TcpIpIpV6Ctrl:
+choice EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpIpSecConfigSetRef: TcpIpIpSecConfigSet:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *

10.2.7 TcpIpCtrl

SWS Item ECUC_TcpIp_00021 :


Container Name TcpIpCtrl
Parent Container TcpIpConfig
Description Specifies the EthIf controller used for IP communication.
Configuration Parameters

SWS Item ECUC_TcpIp_00081 :


Name TcpIpIpFramePrioDefault
Parent Container TcpIpCtrl
Description Specifies the default value for the priority for all outgoing frames.
Note: the value can be changed for each socket individually via
TcpIp_ChangeParameter() service. If this optional parameter is not
available, 0 is used as default priority.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 0 .. 7
Default value 0
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local
136 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00195 :


Name TcpIpDhcpServerConfigRef
Parent Container TcpIpCtrl
Description Reference to a TcpIpDhcpServerConfig which shall be used for this
controller setting (VLAN).
Multiplicity 0..1
Type Reference to [ TcpIpDhcpServerConfig ]
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00041 :


Name TcpIpEthIfCtrlRef
Parent Container TcpIpCtrl
Description Reference to EthIf controller where the IP address shall be assigned.
Multiplicity 1
Type Symbolic name reference to [ EthIfController ]
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00315 :


Name TcpIpIpSecConfigSetRef
Parent Container TcpIpCtrl
Description Reference to set of SDP entries which shall be used for IPsec.
Multiplicity 0..1
Type Reference to [ TcpIpIpSecConfigSet ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
Specifies whether this controller is an Internet Protocol version
TcpIpIpVXCtrl 1
4 (IPv4) or Internet Protocol version 6 (IPv4) instance.

10.2.8 TcpIpIpVXCtrl

SWS Item ECUC_TcpIp_00094 :


Choice container Name TcpIpIpVXCtrl
Parent Container TcpIpCtrl
137 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Specifies whether this controller is an Internet Protocol version 4 (IPv4) or


Description
Internet Protocol version 6 (IPv4) instance.

Container Choices
Container Name Multiplicity Scope / Dependency
TcpIpIpV4Ctrl 0..1 Specifies an Internet Protocol version 4 (IPv4) instance.
TcpIpIpV6Ctrl 0..1 Specifies an Internet Protocol version 6 (IPv6) instance.

TcpIpIpV4Ctrl:
TcpIpArpConfigRef: TcpIpArpConfig:
EcucParamConfContainerDef
+reference EcucReferenceDef +destination EcucParamConfContainerDef
lowerMultiplicity = 0
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = *

TcpIpAutoIpConfigRef: TcpIpAutoIpConfig:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *

TcpIpFragmentationConfigRef: TcpIpIpFragmentationConfig:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *

TcpIpDhcpConfigRef: TcpIpDhcpConfig:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *

TcpIpIpV4MtuConfig:
TcpIpIpV4PathMtuTimeout:
EcucParamConfContainerDef
EcucFloatParamDef
lowerMultiplicity = 1 +parameter
min = 1
upperMultiplicity = 1
max = 86400
defaultValue = 600
+subContainer lowerMultiplicity = 1
upperMultiplicity = 1

TcpIpIpV4PathMtuEnabled:
+parameter EcucBooleanParamDef

lowerMultiplicity = 1
upperMultiplicity = 1
defaultValue = false

10.2.9 TcpIpIpV4Ctrl

SWS Item ECUC_TcpIp_00166 :


Container Name TcpIpIpV4Ctrl
Parent Container TcpIpIpVXCtrl
Description Specifies an Internet Protocol version 4 (IPv4) instance.
Configuration Parameters

SWS Item ECUC_TcpIp_00097 :


Name TcpIpArpConfigRef
Parent Container TcpIpIpV4Ctrl
138 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description Reference to ARP configuration for this IPv4 instance.


(Multiple IPv4 instances may use the same configuration container but will
operate independently)
Multiplicity 0..1
Type Reference to [ TcpIpArpConfig ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00098 :


Name TcpIpAutoIpConfigRef
Parent Container TcpIpIpV4Ctrl
Description Reference to AutoIp configuration for this IPv4 instance.
(Multiple IPv4 instances may use the same configuration container but will
operate independently)
Multiplicity 0..1
Type Reference to [ TcpIpAutoIpConfig ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00100 :


Name TcpIpDhcpConfigRef
Parent Container TcpIpIpV4Ctrl
Description Reference to DHCP configuration for this IPv4 instance.
(Multiple IPv4 instances may use the same configuration container but will
operate independently)
Multiplicity 0..1
Type Reference to [ TcpIpDhcpConfig ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00099 :


Name TcpIpFragmentationConfigRef
139 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Parent Container TcpIpIpV4Ctrl


Description Reference to Fragmentation configuration for this IPv4 instance.
(Multiple IPv4 instances may use the same configuration container but will
operate independently)
Multiplicity 0..1
Type Reference to [ TcpIpIpFragmentationConfig ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
This container specifies the Maximum Transmission Unit
TcpIpIpV4MtuConfig 1
parameters for this IPv4 instance.

10.2.10 TcpIpIpV4MtuConfig

SWS Item ECUC_TcpIp_00209 :


Container Name TcpIpIpV4MtuConfig
Parent Container TcpIpIpV4Ctrl
This container specifies the Maximum Transmission Unit parameters for
Description
this IPv4 instance.
Configuration Parameters

SWS Item ECUC_TcpIp_00211 :


Name TcpIpIpV4PathMtuEnabled
Parent Container TcpIpIpV4MtuConfig
Description If enabled the IPv4 processes incoming ICMPv4 "Packet Too Big"
messages and stores a MTU value for each destination address.
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00210 :


Name TcpIpIpV4PathMtuTimeout
Parent Container TcpIpIpV4MtuConfig
Description If this value is >0 the IpV4 will reset the MTU value stored for each
destination after n seconds.
see [RFC1191 6.3. Purging stale PMTU information]
Default: 600 seconds (10 minutes)
Multiplicity 1
140 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Type EcucFloatParamDef
Range [1 .. 86400]
Default value 600
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

TcpIpDhcpV6Config:
TcpIpIpV6Ctrl: TcpIpIpV6DhcpConfigRef:
+reference +destination EcucParamConfContainerDef
EcucParamConfContainerDef EcucReferenceDef
lowerMultiplicity = 0
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = *
upperMultiplicity = 1 upperMultiplicity = 1

TcpIpIpV6NdpConfigRef: TcpIpNdpConfig:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 1 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *

TcpIpIpV6FragmentationConfigRef: TcpIpIpV6FragmentationConfig:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *

TcpIpIpV6MtuConfig: TcpIpIpV6PathMtuTimeout:
EcucParamConfContainerDef EcucFloatParamDef
lowerMultiplicity = 1 +parameter
min = 1
upperMultiplicity = 1 max = 86400
defaultValue = 600
+subContainer lowerMultiplicity = 1
upperMultiplicity = 1

TcpIpIpV6PathMtuEnabled:
+parameter EcucBooleanParamDef

lowerMultiplicity = 1
upperMultiplicity = 1
defaultValue = false

10.2.11 TcpIpIpV6Ctrl

SWS Item ECUC_TcpIp_00096 :


Container Name TcpIpIpV6Ctrl
Parent Container TcpIpIpVXCtrl
Description Specifies an Internet Protocol version 6 (IPv6) instance.
Configuration Parameters

SWS Item ECUC_TcpIp_00101 :


Name TcpIpIpV6DhcpConfigRef
Parent Container TcpIpIpV6Ctrl
Description Reference to DHCPv6 configuration.
(Multiple IPv6 instances may use the same configuration container but will
operate independently)
Multiplicity 0..1
141 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Type Reference to [ TcpIpDhcpV6Config ]


Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00103 :


Name TcpIpIpV6FragmentationConfigRef
Parent Container TcpIpIpV6Ctrl
Description Reference to IPv6 Fragmentation Configuration.
(Multiple IPv6 instances may use the same configuration container but will
operate independently)
Multiplicity 0..1
Type Reference to [ TcpIpIpV6FragmentationConfig ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00102 :


Name TcpIpIpV6NdpConfigRef
Parent Container TcpIpIpV6Ctrl
Description Reference to Neighbor Discovery Protocol Configuration.
(Multiple IPv6 instances may use the same configuration container but will
operate independently)
Multiplicity 1
Type Reference to [ TcpIpNdpConfig ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
This container specifies the Maximum Transmission Unit
TcpIpIpV6MtuConfig 1
parameters for this IPv6 instance.

10.2.12 TcpIpIpV6MtuConfig

SWS Item ECUC_TcpIp_00104 :


142 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Container Name TcpIpIpV6MtuConfig


Parent Container TcpIpIpV6Ctrl
This container specifies the Maximum Transmission Unit parameters for
Description
this IPv6 instance.
Configuration Parameters

SWS Item ECUC_TcpIp_00107 :


Name TcpIpIpV6PathMtuEnabled
Parent Container TcpIpIpV6MtuConfig
Description If enabled the IPv6 processes incoming ICMPv6 "Packet Too Big"
messages and stores a MTU value for each destination address.
See RFC1981 "Path MTU Discovery for IP version 6" for details about
PathMTU.
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00105 :


Name TcpIpIpV6PathMtuTimeout
Parent Container TcpIpIpV6MtuConfig
Description If this value is >0 the IpV6 will reset the MTU value stored for each
destination after n seconds.
see [RFC1981 5.3. Purging stale PMTU information]
Default: 600 seconds (10 minutes)
Multiplicity 1
Type EcucFloatParamDef
Range [1 .. 86400]
Default value 600
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

143 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpDhcpServerConfig: TcpIpDhcpEthIfSwitchRef: EthIfSwitch:


EcucParamConfContainerDef +reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0 lowerMultiplicity = 0


upperMultiplicity = * upperMultiplicity = 1 upperMultiplicity = *
requiresSymbolicNameValue = true

TcpIpDhcpNetmask: +parameter
EcucIntegerParamDef
+parameter EthIfSwitchIdx:
min = 0
EcucIntegerParamDef
max = 128
lowerMultiplicity = 0 min = 0
upperMultiplicity = 1 max = 255
symbolicNameValue = true

+parameter
TcpIpDhcpDefaultRouter:
EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer

TcpIpDhcpAddressAssignment:
EcucParamConfContainerDef TcpIpDhcpSwitchPortRef: EthSwtPort:
+reference EcucReferenceDef +destination EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = * lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = *
requiresSymbolicNameValue = true

+parameter TcpIpDhcpAddressLowerBound:
EcucStringParamDef +parameter

EthSwtPortIdx:
EcucIntegerParamDef
+parameter
TcpIpDhcpAddressUpperBound: min = 0
EcucStringParamDef max = 255
symbolicNameValue = true

10.2.13 TcpIpDhcpServerConfig

SWS Item ECUC_TcpIp_00187 :


Container Name TcpIpDhcpServerConfig
Parent Container TcpIpConfig
Description Specifies the configuration parameters of the DHCP Server sub-module.
Post-Build Variant
true
Multiplicity
Multiplicity Configuration Pre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Configuration Parameters

SWS Item ECUC_TcpIp_00190 :


Name TcpIpDhcpDefaultRouter
Parent Container TcpIpDhcpServerConfig
Description IP address of default router (gateway).
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
144 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00189 :


Name TcpIpDhcpNetmask
Parent Container TcpIpDhcpServerConfig
Description Network mask of IPv4 address or address prefix of IPv6 address in CIDR
Notation, i.e. decimal value between 0 and 32 (IPv4) or 0 and 128 (IPv6)
that describes the number of significant bits defining the network number
or prefix of an IP address.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 0 .. 128
Default value --
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00188 :


Name TcpIpDhcpEthIfSwitchRef
Parent Container TcpIpDhcpServerConfig
Description Reference to EthIfSwitch representation.
Optional in case the Dhcp server is operating without an Ethernet switch.
Multiplicity 0..1
Type Symbolic name reference to [ EthIfSwitch ]
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: ECU

Included Containers
Container Name Multiplicity Scope / Dependency
TcpIpDhcpAddressAssignmen
0..* Defines a Ethernet Switch port based IP address assignment.
t

145 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.14 TcpIpDhcpAddressAssignment

SWS Item ECUC_TcpIp_00191 :


Container Name TcpIpDhcpAddressAssignment
Parent Container TcpIpDhcpServerConfig
Description Defines a Ethernet Switch port based IP address assignment.
Post-Build Variant
true
Multiplicity
Multiplicity Configuration Pre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Configuration Parameters

SWS Item ECUC_TcpIp_00193 :


Name TcpIpDhcpAddressLowerBound
Parent Container TcpIpDhcpAddressAssignment
Description The lower bound IP address which shall be assigned.
If lower bound and upper bound are identical exactly this IP address shall
be assigned.
Multiplicity 1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00194 :


Name TcpIpDhcpAddressUpperBound
Parent Container TcpIpDhcpAddressAssignment
Description The upper bound IP address which shall be assigned.
If lower bound and upper bound are identical exactly this IP address shall
be assigned.
Multiplicity 1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00192 :


Name TcpIpDhcpSwitchPortRef
Parent Container TcpIpDhcpAddressAssignment
Description Reference to Ethernet Switch port.
146 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Optional in case the Dhcp server is operating without an Ethernet switch.


Multiplicity 0..1
Type Symbolic name reference to [ EthSwtPort ]
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: ECU

No Included Containers

10.2.15 TcpIpDuplicateAddressDetectionConfig

SWS Item ECUC_TcpIp_00214 :


Container Name TcpIpDuplicateAddressDetectionConfig
Parent Container TcpIpConfig
Description Specifies the DAD callout function.
Configuration Parameters

SWS Item ECUC_TcpIp_00216 :


Name TcpIpDuplicateAddressDetectionCalloutName
Parent Container TcpIpDuplicateAddressDetectionConfig
Description This parameter defines the name of the DAD callout function
<Up_DADAddressConflict>.
Multiplicity 1
Type EcucFunctionNameDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency

No Included Containers

147 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpIpConfig: TcpIpIpV4Config:
EcucParamConfContainerDef +subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
lowerMultiplicity = 0
upperMultiplicity = 1
upperMultiplicity = 1

TcpIpIpV6Config:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1

10.2.16 TcpIpIpConfig

SWS Item ECUC_TcpIp_00022 :


Container Name TcpIpIpConfig
Parent Container TcpIpConfig
Specifies the configuration parameters of the IP (Internet Protocol) sub-
Description
module
Configuration Parameters

Included Containers
Container Name Multiplicity Scope / Dependency
Specifies the configuration parameters of the IPv4 (Internet
TcpIpIpV4Config 0..1
Protocol version 4) sub-module.
Specifies the configuration parameters of the IPv6 (Internet
TcpIpIpV6Config 0..1
Protocol version 6) sub-module.

148 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpIpV4Config:
EcucParamConfContainerDef TcpIpArpConfig:
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = 1 lowerMultiplicity = 0
upperMultiplicity = *

TcpIpAutoIpConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = *

TcpIpIcmpConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpIpFragmentationConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = *

TcpIpDhcpConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = *

10.2.17 TcpIpIpV4Config

SWS Item ECUC_TcpIp_00095 :


Container Name TcpIpIpV4Config
Parent Container TcpIpIpConfig
Specifies the configuration parameters of the IPv4 (Internet Protocol
Description
version 4) sub-module.
Configuration Parameters

Included Containers
Container Name Multiplicity Scope / Dependency
Specifies the configuration parameters of the ARP (Address
TcpIpArpConfig 0..*
Resolution Protocol) sub-module.
Specifies the configuration parameters of the Auto-IP
TcpIpAutoIpConfig 0..*
(automatic private IP addressing) sub-module.
149 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Specifies the configuration parameters of the DHCPv4.


This container may be referenced by multiple IPv4 instances if
TcpIpDhcpConfig 0..* they shall use the same configuration.
This container may have multiple instances if different
configurations are required for different IPv4 instances.
Specifies the configuration parameters of the ICMP (Internet
TcpIpIcmpConfig 0..1
Control Message Protocol) sub-module.
Specifies the configuration parameters of IPv4 packet
fragmentation/reassembly.
This container may be referenced by multiple IPv4 instances if
TcpIpIpFragmentationConfig 0..*
they shall use the same configuration.
This container may have multiple instances if different
configurations are required for different IPv4 instances.

TcpIpArpConfig:
EcucParamConfContainerDef TcpIpArpTableSizeMax:
+parameter EcucIntegerParamDef
lowerMultiplicity = 0
upperMultiplicity = * min = 0
max = 65535

TcpIpArpTableEntryTimeout:
+parameter EcucFloatParamDef

min = 0
max = INF

TcpIpArpNumGratuitousARPonStartup:
+parameter EcucIntegerParamDef

min = 0
max = 255

TcpIpArpPacketQueueEnabled:
+parameter EcucBooleanParamDef

lowerMultiplicity = 1
upperMultiplicity = 1
defaultValue = false

TcpIpArpRequestTimeout:
+parameter EcucFloatParamDef

min = 0
max = INF
defaultValue = 1

10.2.18 TcpIpArpConfig

SWS Item ECUC_TcpIp_00023 :


Container Name TcpIpArpConfig
Parent Container TcpIpIpV4Config
150 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Specifies the configuration parameters of the ARP (Address Resolution


Description
Protocol) sub-module.
Configuration Parameters

SWS Item ECUC_TcpIp_00054 :


Name TcpIpArpNumGratuitousARPonStartup
Parent Container TcpIpArpConfig
Description Specifies the number of gratuitous ARP replies which shall be sent on
assignment of a new IP address.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 255
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00170 :


Name TcpIpArpPacketQueueEnabled
Parent Container TcpIpArpConfig
Description Enables (TRUE) or disables (FALSE) support of the ARP Packet Queue
according to IETF RFC 1122, section 2.3.2.2.
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00218 :


Name TcpIpArpRequestTimeout
Parent Container TcpIpArpConfig
Description Specifies a timeout in seconds for the validity of ARP requests. After the
transmission of an ARP request the TcpIp shall skip the transmission of
any further ARP requests to the same destination within a duration of
TcpIpArpRequestTimeout seconds. (IETF RFC 1122, section 2.3.2.1) The
value for this parameter shall be an integral multiple of
TcpIpMainFunctionPeriod or 0. If this parameter set to 0 this features is
disabled and no delay between ARP requests is enforced.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. INF[
Default value 1
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00053 :


Name TcpIpArpTableEntryTimeout
Parent Container TcpIpArpConfig
151 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description Timeout in seconds after which an unused ARP entry is removed.


Multiplicity 1
Type EcucFloatParamDef
Range ]0 .. INF]
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00052 :


Name TcpIpArpTableSizeMax
Parent Container TcpIpArpConfig
Description Maximum number of entries in the ARP table.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local

No Included Containers

TcpIpAutoIpConfig:
TcpIpAutoIpInitTimeout:
EcucParamConfContainerDef +parameter EcucFloatParamDef
lowerMultiplicity = 0 min = 0
upperMultiplicity = *
max = INF

10.2.19 TcpIpAutoIpConfig

SWS Item ECUC_TcpIp_00028 :


Container Name TcpIpAutoIpConfig
Parent Container TcpIpIpV4Config
Specifies the configuration parameters of the Auto-IP (automatic private IP
Description
addressing) sub-module.
Configuration Parameters

SWS Item ECUC_TcpIp_00074 :


Name TcpIpAutoIpInitTimeout
Parent Container TcpIpAutoIpConfig
Description The time in seconds Auto-IP waits at startup, before beginning with ARP
152 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

probing. This delay is used to give DHCP time to acquire a lease in case a
DHCP server is present.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. INF]
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

No Included Containers

TcpIpIpV4Config: TcpIpDhcpConfig:
EcucParamConfContainerDef +subContainer EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *

10.2.20 TcpIpDhcpConfig

SWS Item ECUC_TcpIp_00167 :


Container Name TcpIpDhcpConfig
Parent Container TcpIpIpV4Config
Specifies the configuration parameters of the DHCPv4.

This container may be referenced by multiple IPv4 instances if they shall


Description
use the same configuration.
This container may have multiple instances if different configurations are
required for different IPv4 instances.
Configuration Parameters

No Included Containers

153 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpIcmpConfig: TcpIpIcmpTtl: EcucIntegerParamDef


EcucParamConfContainerDef +parameter
min = 1
lowerMultiplicity = 0 max = 255
upperMultiplicity = 1

TcpIpIcmpMsgHandlerName:
TcpIpIcmpMsgHandler: +parameter EcucFunctionNameDef
EcucParamConfContainerDef

lowerMultiplicity = 0
+subContainer upperMultiplicity = 1

+parameter TcpIpIcmpEchoReplyEnabled:
EcucBooleanParamDef

defaultValue = FALSE

10.2.21 TcpIpIcmpConfig

SWS Item ECUC_TcpIp_00024 :


Container Name TcpIpIcmpConfig
Parent Container TcpIpIpV4Config
Specifies the configuration parameters of the ICMP (Internet Control
Description
Message Protocol) sub-module.
Configuration Parameters

SWS Item ECUC_TcpIp_00213 :


Name TcpIpIcmpEchoReplyEnabled
Parent Container TcpIpIcmpConfig
Description Enables or disables transmission of ICMP echo reply message in case of a
ICMP echo reception.
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00055 :


Name TcpIpIcmpTtl
Parent Container TcpIpIcmpConfig
Description Default Time-to-live value of outgoing ICMP packets.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 255
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local
154 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Included Containers
Container Name Multiplicity Scope / Dependency
This container is a subcontainer of TcpIpIcmpConfig and
TcpIpIcmpMsgHandler 0..1 specifies the configuration parameters for the ICMP message
handler.

10.2.22 TcpIpIcmpMsgHandler

SWS Item ECUC_TcpIp_00056 :


Container Name TcpIpIcmpMsgHandler
Parent Container TcpIpIcmpConfig
This container is a subcontainer of TcpIpIcmpConfig and specifies the
Description
configuration parameters for the ICMP message handler.
Configuration Parameters

SWS Item ECUC_TcpIp_00057 :


Name TcpIpIcmpMsgHandlerName
Parent Container TcpIpIcmpMsgHandler
Description This parameter defines the name of the ICMP message handler function
<Up_IcmpMsgHandler>.
Multiplicity 1
Type EcucFunctionNameDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local

No Included Containers

155 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpIpFragmentationConfig: TcpIpIpFragmentationRxEnabled:
EcucParamConfContainerDef +parameter EcucBooleanParamDef
lowerMultiplicity = 0 defaultValue = false
upperMultiplicity = *

TcpIpIpNumFragments:
EcucIntegerParamDef
+parameter min = 0
max = 255
defaultValue = 0
lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpIpReassTimeout:
EcucFloatParamDef
+parameter min = 0
max = INF
defaultValue = 60
lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpIpNumReassDgrams:
EcucIntegerParamDef
+parameter min = 0
max = 65535
defaultValue = 3
lowerMultiplicity = 0
upperMultiplicity = 1

10.2.23 TcpIpIpFragmentationConfig

SWS Item ECUC_TcpIp_00108 :


Container Name TcpIpIpFragmentationConfig
Parent Container TcpIpIpV4Config
Specifies the configuration parameters of IPv4 packet
fragmentation/reassembly.

Description This container may be referenced by multiple IPv4 instances if they shall
use the same configuration.
This container may have multiple instances if different configurations are
required for different IPv4 instances.
Configuration Parameters

SWS Item ECUC_TcpIp_00077 :


Name TcpIpIpFragmentationRxEnabled
Parent Container TcpIpIpFragmentationConfig
Description Enables (TRUE) or disables (FALSE) support for reassembling of incoming
datagrams that are fragmented according to IETF RFC 815 (IP Datagram
Reassembly Algorithms).
Multiplicity 1
Type EcucBooleanParamDef
156 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Default value false


Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00078 :


Name TcpIpIpNumFragments
Parent Container TcpIpIpFragmentationConfig
Description Specifies the maximum number of IP fragments per datagram.
Note: this parameter is only relevant if TcpIpIpFragmentationRxEnabled is
TRUE.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 0 .. 255
Default value 0
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local
dependency: TcpIpIpFragmentationRxEnabled

SWS Item ECUC_TcpIp_00080 :


Name TcpIpIpNumReassDgrams
Parent Container TcpIpIpFragmentationConfig
Description Specifies the maximum number of fragmented IP datagrams that can be
reassembled in parallel.
Note: this parameter is only relevant if TcpIpIpFragmentationRxEnabled is
TRUE.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value 3
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local
dependency: TcpIpIpFragmentationRxEnabled

SWS Item ECUC_TcpIp_00079 :


Name TcpIpIpReassTimeout
Parent Container TcpIpIpFragmentationConfig
Description Specifies the timeout in [s] after which an incomplete datagram gets
157 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

discarded.
Note: this parameter is only relevant if TcpIpIpFragmentationRxEnabled is
TRUE.
Multiplicity 0..1
Type EcucFloatParamDef
Range [0 .. INF]
Default value 60
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local
dependency: TcpIpIpFragmentationRxEnabled

No Included Containers

TcpIpIpV6Config: TcpIpDhcpV6Config:
EcucParamConfContainerDef +subContainer EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *

TcpIpNdpConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = *

TcpIpIcmpV6Config:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = 1

TcpIpIpV6FragmentationConfig:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = *

TcpIpIpV6ConfigExtHeaderFilterEntry:
TcpIpIpV6ConfigExtHeaderFilter: EcucIntegerParamDef
+subContainer EcucParamConfContainerDef +parameter
min = 0
lowerMultiplicity = 0 max = 255
upperMultiplicity = * lowerMultiplicity = 1
upperMultiplicity = *

10.2.24 TcpIpIpV6Config

SWS Item ECUC_TcpIp_00168 :


Container Name TcpIpIpV6Config
Parent Container TcpIpIpConfig
Specifies the configuration parameters of the IPv6 (Internet Protocol
Description
version 6) sub-module.
158 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Configuration Parameters

Included Containers
Container Name Multiplicity Scope / Dependency
Specifies the configuration parameters of the DHCPv6.
This container may be referenced by multiple IPv6
TcpIpDhcpV6Config 0..* instances if they shall use the same configuration.
This container may have multiple instances if different
configurations are required for different IPv6 instances.
Specifies the configuration parameters of the ICMPv6
TcpIpIcmpV6Config 1
(Internet Control Message Protocol for IPv6) sub-module.
This container describes the white list for the filtering of
TcpIpIpV6ConfigExtHeaderFilte
0..* IPv6 extension headers, i.e. frames containing IPv6
r
extension headers not listed here shall be silently dropped.
Specifies the configuration parameters of IPv6 packet
fragmentation/reassembly.
This container may be referenced by multiple IPv6
TcpIpIpV6FragmentationConfig 0..*
instances if they shall use the same configuration.
This container may have multiple instances if different
configurations are required for different IPv6 instances.
Specifies the configuration parameters of the Neighbor
Discovery Protocol for IPv6
This container may be referenced by multiple IPv6
TcpIpNdpConfig 0..*
instances if they shall use the same configuration.
This container may have multiple instances if different
configurations are required for different IPv6 instances.

159 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpDhcpV6Config: TcpIpDhcpV6CnfDelayMax:
EcucFloatParamDef
EcucParamConfContainerDef +parameter
min = 0
lowerMultiplicity = 0
upperMultiplicity = * max = 100
defaultValue = 1

TcpIpDhcpV6CnfDelayMin:
+parameter EcucFloatParamDef

min = 0
max = 100
defaultValue = 0

TcpIpDhcpV6InfDelayMax:
+parameter EcucFloatParamDef

min = 0
max = 100
defaultValue = 1

TcpIpDhcpV6InfDelayMin:
+parameter EcucFloatParamDef

min = 0
max = 100
defaultValue = 0

TcpIpDhcpV6SolDelayMax:
+parameter EcucFloatParamDef

min = 0
max = 100
defaultValue = 1

TcpIpDhcpV6SolDelayMin:
+parameter EcucFloatParamDef

min = 0
max = 100
defaultValue = 0

10.2.25 TcpIpDhcpV6Config

160 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00110 :


Container Name TcpIpDhcpV6Config
Parent Container TcpIpIpV6Config
Specifies the configuration parameters of the DHCPv6.

This container may be referenced by multiple IPv6 instances if they shall


Description
use the same configuration.
This container may have multiple instances if different configurations are
required for different IPv6 instances.
Configuration Parameters

SWS Item ECUC_TcpIp_00116 :


Name TcpIpDhcpV6CnfDelayMax
Parent Container TcpIpDhcpV6Config
Description Maximum delay (s) before sending the first Confirm message. If this value
is bigger than the previous minimum delay value a random delay will be
chosen from the interval.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 100]
Default value 1
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00117 :


Name TcpIpDhcpV6CnfDelayMin
Parent Container TcpIpDhcpV6Config
Description Minimum delay (s) before the first Confirm message will be sent.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 100]
Default value 0
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00118 :


Name TcpIpDhcpV6InfDelayMax
Parent Container TcpIpDhcpV6Config
Description Maximum delay (s) before sending the first Information Request message.
If this value is bigger than the previous minimum delay value a random
delay will be chosen from the interval.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 100]
Default value 1
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
161 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00119 :


Name TcpIpDhcpV6InfDelayMin
Parent Container TcpIpDhcpV6Config
Description Minimum delay (s) before the first Information Request message will be
sent.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 100]
Default value 0
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00120 :


Name TcpIpDhcpV6SolDelayMax
Parent Container TcpIpDhcpV6Config
Description Maximum delay (s) before sending the first Solicit message. If this value is
bigger than the previous minimum delay value a random delay will be
chosen from the interval.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 100]
Default value 1
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00121 :


Name TcpIpDhcpV6SolDelayMin
Parent Container TcpIpDhcpV6Config
Description Minimum delay (s) before the first Solicit message will be sent.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 100]
Default value 0
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

162 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpIcmpV6Config:
+parameter TcpIpIcmpV6EchoReplyEnabled:
EcucParamConfContainerDef EcucBooleanParamDef
lowerMultiplicity = 1 defaultValue = false TcpIpIcmpV6EchoReplyAvoidFragmentation:
upperMultiplicity = 1
+parameter EcucBooleanParamDef

defaultValue = false
lowerMultiplicity = 1
upperMultiplicity = 1
+parameter TcpIpIcmpV6MsgParameterProblemEnabled:
EcucBooleanParamDef

defaultValue = true

TcpIpIcmpV6HopLimit:
+parameter EcucIntegerParamDef

min = 1
max = 255

+parameter TcpIpIcmpV6MsgDestinationUnreachableEnabled:
EcucBooleanParamDef

TcpIpIcmpV6MsgHandler:
EcucParamConfContainerDef

lowerMultiplicity = 0
+subContainer upperMultiplicity = 1

+parameter
TcpIpIcmpV6MsgHandlerName:
EcucFunctionNameDef

10.2.26 TcpIpIcmpV6Config

SWS Item ECUC_TcpIp_00113 :


Container Name TcpIpIcmpV6Config
Parent Container TcpIpIpV6Config
Specifies the configuration parameters of the ICMPv6 (Internet Control
Description
Message Protocol for IPv6) sub-module.
Configuration Parameters

SWS Item ECUC_TcpIp_00212 :


Name TcpIpIcmpV6EchoReplyAvoidFragmentation
Parent Container TcpIpIcmpV6Config
Description If enabled, the stack will respond only to incoming ICMPv6 Echo Requests
(Pings) that fit the MTU of the respective interface, i.e. can be transmitted
without IPv6 fragmentation. Only relevant if
TcpIpIcmpV6EchoReplyEnabled is enabled.
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: TcpIpIcmpV6EchoReplyEnabled

163 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00149 :


Name TcpIpIcmpV6EchoReplyEnabled
Parent Container TcpIpIcmpV6Config
Description If enabled, the stack will respond to incoming ICMPv6 Echo Requests
(Pings).
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00152 :


Name TcpIpIcmpV6HopLimit
Parent Container TcpIpIcmpV6Config
Description Default Hop-Limit value of outgoing ICMPv6 packets.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 255
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00153 :


Name TcpIpIcmpV6MsgDestinationUnreachableEnabled
Parent Container TcpIpIcmpV6Config
Description Dis/Enables transmission of Destination Unreachable Messages
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00151 :


Name TcpIpIcmpV6MsgParameterProblemEnabled
Parent Container TcpIpIcmpV6Config
Description If enabled an ICMPv6 parameter problem message will be sent if a
received packet has been dropped due to unknown options or headers that
are found in the packet.
[RFC8200 4. IPv6 Extension Headers]
Multiplicity 1
Type EcucBooleanParamDef
Default value true
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
164 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Included Containers
Container Name Multiplicity Scope / Dependency
This container is a subcontainer of TcpIpIcmpConfig and
TcpIpIcmpV6MsgHandler 0..1 specifies the configuration parameters for the ICMPv6
message handler.

10.2.27 TcpIpIcmpV6MsgHandler

SWS Item ECUC_TcpIp_00154 :


Container Name TcpIpIcmpV6MsgHandler
Parent Container TcpIpIcmpV6Config
This container is a subcontainer of TcpIpIcmpConfig and specifies the
Description
configuration parameters for the ICMPv6 message handler.
Configuration Parameters

SWS Item ECUC_TcpIp_00156 :


Name TcpIpIcmpV6MsgHandlerName
Parent Container TcpIpIcmpV6MsgHandler
Description This parameter defines the name of the ICMP message handler function
<Up_IcmpMsgHandler>.
Multiplicity 1
Type EcucFunctionNameDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local

No Included Containers

10.2.28 TcpIpIpV6ConfigExtHeaderFilter

SWS Item ECUC_TcpIp_00198 :


Container Name TcpIpIpV6ConfigExtHeaderFilter
Parent Container TcpIpIpV6Config
This container describes the white list for the filtering of IPv6 extension
Description headers, i.e. frames containing IPv6 extension headers not listed here
shall be silently dropped.
Post-Build Variant
false
Multiplicity
Configuration Parameters

165 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00199 :


Name TcpIpIpV6ConfigExtHeaderFilterEntry
Parent Container TcpIpIpV6ConfigExtHeaderFilter
Description IPv6 Extension Header type allowed by this filter.
Multiplicity 1..*
Type EcucIntegerParamDef
Range 0 .. 255
Default value --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

166 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpIpV6FragmentationConfig:
EcucParamConfContainerDef TcpIpIpV6ReassemblyBufferCount:
+parameter EcucIntegerParamDef
lowerMultiplicity = 0
upperMultiplicity = * min = 0
max = 255
defaultValue = 255

TcpIpIpV6ReassemblyBufferSize:
EcucIntegerParamDef
+parameter min = 1500
max = 65535
defaultValue = 1500
lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpIpV6ReassemblyTimeout:
EcucFloatParamDef
+parameter
min = 0.001
max = 100
defaultValue = 60
lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpIpV6ReassemblySegmentCount:
EcucIntegerParamDef
+parameter min = 1
max = 255
defaultValue = 5
lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpIpV6TxFragmentBufferCount:
EcucIntegerParamDef
+parameter min = 1
max = 1000
defaultValue = 2
lowerMultiplicity = 1
upperMultiplicity = 1

TcpIpIpV6TxFragmentBufferSize:
EcucIntegerParamDef
+parameter min = 1500
max = 65535
defaultValue = 1500
lowerMultiplicity = 0
upperMultiplicity = 1

10.2.29 TcpIpIpV6FragmentationConfig

SWS Item ECUC_TcpIp_00114 :


Container Name TcpIpIpV6FragmentationConfig
Parent Container TcpIpIpV6Config
Specifies the configuration parameters of IPv6 packet
Description
fragmentation/reassembly.

167 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

This container may be referenced by multiple IPv6 instances if they shall


use the same configuration.
This container may have multiple instances if different configurations are
required for different IPv6 instances.
Configuration Parameters

SWS Item ECUC_TcpIp_00157 :


Name TcpIpIpV6ReassemblyBufferCount
Parent Container TcpIpIpV6FragmentationConfig
Description Number of buffers that can be used for fragment reassembly. In case of a
reassembly error or if not all fragments are received in time this buffer will
be blocked until the specified "Fragment Reassembly Timeout" has been
exceeded.
A value of 0 disables fragment reassembly.

[RFC8200 5. Packet Size Issues]


"In order to send a packet larger than a path's MTU, a node may use the
IPv6 Fragment header to fragment the packet at the source and have it
reassembled at the destination(s). However, the use of such fragmentation
is discouraged in any application that is able to adjust its packets to fit the
measured path MTU (i.e., down to 1280 octets)."
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 255
Default value 255
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency

SWS Item ECUC_TcpIp_00158 :


Name TcpIpIpV6ReassemblyBufferSize
Parent Container TcpIpIpV6FragmentationConfig
Description [RFC8200 5. Packet Size Issues]
"A node must be able to accept a fragmented packet that, after
reassembly, is as large as 1500 octets. A node is permitted to accept
fragmented packets that reassemble to more than 1500 octets."the
measured path MTU (i.e., down to 1280 octets)."
Multiplicity 0..1
Type EcucIntegerParamDef
Range 1500 .. 65535
Default value 1500
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00160 :


Name TcpIpIpV6ReassemblySegmentCount
168 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Parent Container TcpIpIpV6FragmentationConfig


Description Specifies the maximum number of consecutive data segments that can be
managed in each reassembly buffer. If all fragments are received in order,
only one segment will be needed.
To deal with fragments received out of order this value should be
configured bigger than 1.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 1 .. 255
Default value 5
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00159 :


Name TcpIpIpV6ReassemblyTimeout
Parent Container TcpIpIpV6FragmentationConfig
Description [RFC8200 4.5 Fragment Header]
Default: 60 seconds
Multiplicity 0..1
Type EcucFloatParamDef
Range [0.001 .. 100]
Default value 60
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00161 :


Name TcpIpIpV6TxFragmentBufferCount
Parent Container TcpIpIpV6FragmentationConfig
Description These buffers will be used if the IpV6 receives packets from the upper
layer that do not fit into the MTU and thus must be fragmented.
A value of 0 disables tx fragmentation.

If the upper layer transmits packets that do not fit into the link or path MTU,
the IpV6 will split-up the packet into fragments.

see "Enable Fragment Reassembly"


Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 1000
Default value 2

169 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-Build Variant Value false


Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00162 :


Name TcpIpIpV6TxFragmentBufferSize
Parent Container TcpIpIpV6FragmentationConfig
Description Size of each fragment tx buffer in bytes
Multiplicity 0..1
Type EcucIntegerParamDef
Range 1500 .. 65535
Default value 1500
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

170 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpNdpConfig: TcpIpNdpSlaacConfig:
EcucParamConfContainerDef EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
+subContainer
upperMultiplicity = * upperMultiplicity = 1

TcpIpNdpArNudConfig:
EcucParamConfContainerDef

lowerMultiplicity = 0
+subContainer
upperMultiplicity = 1

TcpIpNdpPrefixRouterDiscoveryConfig:
EcucParamConfContainerDef

+subContainer lowerMultiplicity = 0
upperMultiplicity = 1

10.2.30 TcpIpNdpConfig

SWS Item ECUC_TcpIp_00112 :


Container Name TcpIpNdpConfig
Parent Container TcpIpIpV6Config
Specifies the configuration parameters of the Neighbor Discovery Protocol
for IPv6

Description This container may be referenced by multiple IPv6 instances if they shall
use the same configuration.
This container may have multiple instances if different configurations are
required for different IPv6 instances.
Configuration Parameters

Included Containers
Container Name Multiplicity Scope / Dependency
TcpIpNdpArNudConfig 0..1 Specifies the configuration parameters for NDP
171 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Address Resolution and Neighbor Unreachability


Detection.
TcpIpNdpPrefixRouterDiscoveryConfi Specifies the configuration parameters for NDP Prefix
0..1
g and Router Discovery.
Specifies the configuration parameters for StateLess
TcpIpNdpSlaacConfig 0..1
Address AutoConfiguration.

172 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpNdpArNudConfig:
EcucParamConfContainerDef TcpIpNdpMaxNeighborCacheSize:
+parameter EcucIntegerParamDef
lowerMultiplicity = 0
upperMultiplicity = 1 min = 1
max = 254
defaultValue = 5

TcpIpNdpDefaultReachableTime:
+parameter EcucFloatParamDef

min = 0
max = 120
defaultValue = 30

TcpIpNdpDefaultRetransTimer:
+parameter EcucFloatParamDef

min = 0
max = 60
defaultValue = 1

TcpIpNdpNumUnicastSolicitations:
+parameter EcucIntegerParamDef

min = 0
max = 255
defaultValue = 3

TcpIpNdpDefensiveProcessing:
+parameter EcucBooleanParamDef

defaultValue = false
lowerMultiplicity = 1
upperMultiplicity = 1

TcpIpNdpNumMulticastSolicitations:
+parameter EcucIntegerParamDef

min = 0
max = 255
defaultValue = 3

TcpIpNdpDelayFirstProbeTime:
+parameter EcucFloatParamDef

min = 0
max = 60
defaultValue = 5

TcpIpNdpMinRandomFactor:
+parameter EcucIntegerParamDef

min = 0
max = 100
defaultValue = 5

TcpIpNdpMaxRandomFactor:
+parameter EcucIntegerParamDef

min = 0
max = 100
defaultValue = 15

+parameter TcpIpNdpNeighborUnreachabilityDetectionEnabled:
EcucBooleanParamDef

defaultValue = true

+parameter TcpIpNdpRandomReachableTimeEnabled:
EcucBooleanParamDef

defaultValue = true

TcpIpNdpPacketQueueEnabled:
+parameter EcucBooleanParamDef

defaultValue = true
lowerMultiplicity = 1
upperMultiplicity = 1

173 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.31 TcpIpNdpArNudConfig

SWS Item ECUC_TcpIp_00123 :


Container Name TcpIpNdpArNudConfig
Parent Container TcpIpNdpConfig
Specifies the configuration parameters for NDP Address Resolution and
Description
Neighbor Unreachability Detection.
Configuration Parameters

SWS Item ECUC_TcpIp_00130 :


Name TcpIpNdpDefaultReachableTime
Parent Container TcpIpNdpArNudConfig
Description Configuration of the ReachableTime (s) specified in [RFC4861 6.3.2. Host
Variables].
"The time a neighbor is considered reachable after receiving a reachability
confirmation."

If "TcpIpNdpDynamicReachableTimeEnabled" is checked, this value may


be reconfigured based on received Router Advertisements.

Default: REACHABLE_TIME = 30 seconds


Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 120]
Default value 30
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00165 :


Name TcpIpNdpDefaultRetransTimer
Parent Container TcpIpNdpArNudConfig
Description Configures the default value (s) for the RetransTimer variable specified in
[RFC4861 6.3.2. Host Variables].
"The time between retransmissions of Neighbor Solicitation messages to a
neighbor when resolving the address or when probing the reachability of a
neighbor."

If "TcpIpNdpDynamicRetransTimeEnabled" is checked, this value may be


reconfigured based on received Router Advertisements.

Default: RETRANS_TIMER = 1 second


Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 60]
Default value 1
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00201 :


Name TcpIpNdpDefensiveProcessing
Parent Container TcpIpNdpArNudConfig
174 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description If enabled the NDP shall only process Neighbor Advertisements which are
received in reaction to a previously transmitted Neighbor Solicitation as
well as skipping updates to the Neighbor Cache based on received
Neighbor Solicitations. If disabled all Neighbor Advertisements and
Solicitations shall be processed as specified in RFC4861.
[RFC4861 7.2.5. Receipt of Neighbor Advertisements]
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00133 :


Name TcpIpNdpDelayFirstProbeTime
Parent Container TcpIpNdpArNudConfig
Description Delay before sending the first NUD probe in (s).
[RFC4861 7.3.3. Node Behavior]

Default: DELAY_FIRST_PROBE_TIME = 5 seconds


Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 60]
Default value 5
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00129 :


Name TcpIpNdpMaxNeighborCacheSize
Parent Container TcpIpNdpArNudConfig
Description Maximum number of entries in the neighbor cache.
[RFC4861 5.1. Conceptual Data Structures]
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 254
Default value 5
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00135 :


Name TcpIpNdpMaxRandomFactor
Parent Container TcpIpNdpArNudConfig
Description Maximum random factor used for randomization
[RFC4861 10. Protocol Constants]

Default: 15 (MAX_RANDOM_FACTOR = 1.5)


Multiplicity 1
Type EcucIntegerParamDef

175 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Range 0 .. 100
Default value 15
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00134 :


Name TcpIpNdpMinRandomFactor
Parent Container TcpIpNdpArNudConfig
Description Minimum random factor used for randomization
[RFC4861 10. Protocol Constants]

Default: 5 (MIN_RANDOM_FACTOR = 0.5)


Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 100
Default value 5
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00136 :


Name TcpIpNdpNeighborUnreachabilityDetectionEnabled
Parent Container TcpIpNdpArNudConfig
Description Neighbor Unreachability Detection is used to remove unused entries from
the neighbor cache. This feature is a basic feature of NDP and should be
turned on.
Multiplicity 1
Type EcucBooleanParamDef
Default value true
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00132 :


Name TcpIpNdpNumMulticastSolicitations
Parent Container TcpIpNdpArNudConfig
Description Maximum number of multicast solicitations that will be sent when
performing address resolution.
[RFC4861 7.2.2. Sending Neighbor Solicitations]

Default: MAX_MULTICAST_SOLICIT = 3
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 255
Default value 3
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
176 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00131 :


Name TcpIpNdpNumUnicastSolicitations
Parent Container TcpIpNdpArNudConfig
Description Maximum number of unicast solicitations that will be sent when performig
Neighbor Unreachability Detection.
[RFC4861 7.3.3. Node Behavior]

Default: MAX_UNICAST_SOLICIT = 3
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 255
Default value 3
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00171 :


Name TcpIpNdpPacketQueueEnabled
Parent Container TcpIpNdpArNudConfig
Description Enables (TRUE) or disables (FALSE) support of a NDP Packet Queue
according to IETF RFC 4861, section 7.2.2.
Multiplicity 1
Type EcucBooleanParamDef
Default value true
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00137 :


Name TcpIpNdpRandomReachableTimeEnabled
Parent Container TcpIpNdpArNudConfig
Description If enabled the value of ReachableTime will be multiplied with a random
value between MIN_RANDOM_FACTOR and MAX_RANDOM_FACTOR
in order to prevent multiple nodes from transmitting at exactly the same
time
[RFC4861 6.3.2. Host Variables / ReachableTime]
Multiplicity 1
Type EcucBooleanParamDef
Default value true
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

177 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpNdpPrefixRouterDiscoveryConfig:
EcucParamConfContainerDef TcpIpNdpDestinationCacheSize:
lowerMultiplicity = 0 +parameter EcucIntegerParamDef
upperMultiplicity = 1 min = 1
max = 254
defaultValue = 5

TcpIpNdpPrefixListSize:
+parameter EcucIntegerParamDef

min = 1
max = 254
defaultValue = 5

TcpIpNdpDefaultRouterListSize:
+parameter EcucIntegerParamDef

min = 2
max = 254
defaultValue = 2

+parameter TcpIpNdpRndRtrSolicitationDelayEnabled:
EcucBooleanParamDef

defaultValue = true

TcpIpNdpMaxRtrSolicitations:
+parameter EcucIntegerParamDef

min = 0
max = 255
defaultValue = 3

TcpIpNdpMaxRtrSolicitationDelay:
+parameter EcucFloatParamDef

min = 0.001
max = 60
defaultValue = 1

TcpIpNdpRtrSolicitationInterval:
+parameter EcucFloatParamDef

min = 0.001
max = 60
defaultValue = 4

+parameter TcpIpNdpDynamicRetransTimeEnabled:
EcucBooleanParamDef

defaultValue = true

+parameter TcpIpNdpDynamicReachableTimeEnabled:
EcucBooleanParamDef

defaultValue = true

+parameter TcpIpNdpDynamicHopLimitEnabled:
EcucBooleanParamDef

defaultValue = true

+parameter TcpIpNdpDynamicMtuEnabled:
EcucBooleanParamDef

defaultValue = false

TcpIpNdpPrefixList:
EcucParamConfContainerDef
+subContainer
lowerMultiplicity = 0
upperMultiplicity = 1

+subContainer TcpIpNdpPrefixListEntryPrefixLength:
EcucIntegerParamDef
TcpIpNdpPrefixListEntry: +parameter min = 0
EcucParamConfContainerDef max = 128
lowerMultiplicity = 1
upperMultiplicity = *
+parameter TcpIpNdpPrefixListEntryPrefixAddress:
EcucStringParamDef

10.2.32 TcpIpNdpPrefixRouterDiscoveryConfig

178 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00124 :


Container Name TcpIpNdpPrefixRouterDiscoveryConfig
Parent Container TcpIpNdpConfig
Specifies the configuration parameters for NDP Prefix and Router
Description
Discovery.
Configuration Parameters

SWS Item ECUC_TcpIp_00139 :


Name TcpIpNdpDefaultRouterListSize
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Description Maximum number of default router entries.
[RFC4861 5.1. Conceptual Data Structures]
Multiplicity 1
Type EcucIntegerParamDef
Range 2 .. 254
Default value 2
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00138 :


Name TcpIpNdpDestinationCacheSize
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Description Maximum number of entries in the destination cache.
[RFC4861 5.1. Conceptual Data Structures]
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 254
Default value 5
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00147 :


Name TcpIpNdpDynamicHopLimitEnabled
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Description If enabled the default hop limit may be reconfigured based on received
Router Advertisements.
[RFC4861 6.3.4. Processing Received Router Advertisements]
Multiplicity 1
Type EcucBooleanParamDef
Default value true
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00148 :


Name TcpIpNdpDynamicMtuEnabled
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Description Allow dynamic reconfiguration of link MTU via Router Advertisements.
179 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

[RFC4861 4.6.4. MTU]


Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00146 :


Name TcpIpNdpDynamicReachableTimeEnabled
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Description If enabled the default Reachable Time value may be reconfigured based
on received Router Advertisements.
[RFC4861 6.3.4. Processing Received Router Advertisements]

Default: Enabled
Multiplicity 1
Type EcucBooleanParamDef
Default value true
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00145 :


Name TcpIpNdpDynamicRetransTimeEnabled
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Description If enabled the default Retransmit Timer value may be reconfigured based
on received Router Advertisements.
[RFC4861 6.3.4. Processing Received Router Advertisements]

Default: Enabled
Multiplicity 1
Type EcucBooleanParamDef
Default value true
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00143 :


Name TcpIpNdpMaxRtrSolicitationDelay
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Description Maximum delay before the first Router Solicitation will be sent after
interface initialization in (s).
[RFC4861 6.3.7. Sending Router Solicitations]

Default: MAX_RTR_SOLICITATION_DELAY = 1 second


Multiplicity 1
Type EcucFloatParamDef
Range [0.001 .. 60]
Default value 1

180 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-Build Variant Value false


Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00142 :


Name TcpIpNdpMaxRtrSolicitations
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Description Maximum number of Router Solicitations that will be sent before the first
Router Advertisement has been received.
0 = No Router Solicitations will be sent.
This has no impact on handling Router Advertisements.

[RFC4861 6.3.7. Sending Router Solicitations]

Default: MAX_RTR_SOLICITATIONS = 3 transmissions


Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 255
Default value 3
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00140 :


Name TcpIpNdpPrefixListSize
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Description Maximum number of entries in the on-link prefix list.
[RFC4861 5.1. Conceptual Data Structures]
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 254
Default value 5
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00141 :


Name TcpIpNdpRndRtrSolicitationDelayEnabled
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Description If enabled the first router solicitation will be delayed randomly from
[0...MAX_RTR_SOLICITATION_DELAY]. Otherwise the first router
solicitation will be sent after exactly MAX_RTR_SOLICITATION_DELAY
milliseconds.
[RFC4861 6.3.7. Sending Router Solicitations]

Default: Enabled
Multiplicity 1
Type EcucBooleanParamDef
Default value true
Post-Build Variant Value false

181 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Value Configuration Class Pre-compile time X All Variants


Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00144 :


Name TcpIpNdpRtrSolicitationInterval
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Description Interval between consecutive Router Solicitations in (s).
[RFC4861 6.3.7. Sending Router Solicitations]

Default: RTR_SOLICITATION_INTERVAL = 4 seconds


Multiplicity 1
Type EcucFloatParamDef
Range [0.001 .. 60]
Default value 4
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
Specifies a list of prefixes to be treated as "on-link" according
TcpIpNdpPrefixList 0..1
to IETF RFC 4861 Section 5.1.

10.2.33 TcpIpNdpPrefixList

SWS Item ECUC_TcpIp_00205 :


Container Name TcpIpNdpPrefixList
Parent Container TcpIpNdpPrefixRouterDiscoveryConfig
Specifies a list of prefixes to be treated as "on-link" according to IETF RFC
Description
4861 Section 5.1.
Configuration Parameters

Included Containers
Container Name Multiplicity Scope / Dependency
TcpIpNdpPrefixListEntry 1..* Single entry in the prefix list.

10.2.34 TcpIpNdpPrefixListEntry

SWS Item ECUC_TcpIp_00206 :


Container Name TcpIpNdpPrefixListEntry
Parent Container TcpIpNdpPrefixList
Description Single entry in the prefix list.
Configuration Parameters

182 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00208 :


Name TcpIpNdpPrefixListEntryPrefixAddress
Parent Container TcpIpNdpPrefixListEntry
Description The prefix of an IP address. This prefix can be used for on-link
determination.
Multiplicity 1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00207 :


Name TcpIpNdpPrefixListEntryPrefixLength
Parent Container TcpIpNdpPrefixListEntry
Description The number of leading bits in the Prefix that are valid.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 128
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

183 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpNdpSlaacConfig:
EcucParamConfContainerDef +parameter TcpIpNdpSlaacDelayEnabled:
EcucBooleanParamDef
lowerMultiplicity = 0 defaultValue = false
upperMultiplicity = 1

+parameter TcpIpNdpSlaacOptimisticDadEnabled:
EcucBooleanParamDef

defaultValue = false

TcpIpNdpSlaacDadRetransmissionDelay:
+parameter EcucFloatParamDef

min = 0
max = 10
defaultValue = 1

TcpIpNdpSlaacDadNumberOfTransmissions:
EcucIntegerParamDef
+parameter
min = 0
max = 254
defaultValue = 1

10.2.35 TcpIpNdpSlaacConfig

SWS Item ECUC_TcpIp_00122 :


Container Name TcpIpNdpSlaacConfig
Parent Container TcpIpNdpConfig
Specifies the configuration parameters for StateLess Address
Description
AutoConfiguration.
Configuration Parameters

SWS Item ECUC_TcpIp_00128 :


Name TcpIpNdpSlaacDadNumberOfTransmissions
Parent Container TcpIpNdpSlaacConfig
Description Number of Neighbor Solicitations that have to be unanswered in order to
set an autoconfigurated address to PREFERRED (usable) state.
[RFC4861 5.1. Node Configuration Variables]

Default: DupAddrDetectTransmits = 1

Setting this value to 0 turns off DAD.


Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 254
Default value 1
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

184 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00127 :


Name TcpIpNdpSlaacDadRetransmissionDelay
Parent Container TcpIpNdpSlaacConfig
Description Sets the maximum value for the address configuration delay (s).
According to [RFC4861 5.4.2. Sending Neighbor Solicitation Messages]
this value should be the same as MAX_RTR_SOLICITATION_DELAY.

Default: MAX_RTR_SOLICITATION_DELAY = 1 second


Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 10]
Default value 1
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00125 :


Name TcpIpNdpSlaacDelayEnabled
Parent Container TcpIpNdpSlaacConfig
Description If enabled transmission of the first DAD Neighbor Solicitation will be
delayed by a random value from [0...MAX_DAD_DELAY].
"This serves to alleviate congestion when many nodes start up on the link
at the same time, such as after a power failure, and may help to avoid race
conditions when more than one node is trying to solicit for the same
address at the same time."

"The delay will avoid similar congestion when multiple nodes are going to
configure addresses by receiving the same single multicast router
advertisement."

[RFC4861 5.4.2. Sending Neighbor Solicitation Messages]

Default: True
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00126 :


Name TcpIpNdpSlaacOptimisticDadEnabled
Parent Container TcpIpNdpSlaacConfig
Description Enable Optimistic Duplicate Address Detection (DAD) according to
RFC4429.
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
185 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

No Included Containers

186 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpLocalAddr: TcpIpAddrId: EcucIntegerParamDef


EcucParamConfContainerDef +parameter
min = 0
lowerMultiplicity = 1 max = 65535
upperMultiplicity = * symbolicNameValue = true

+literal TCPIP_AF_INET:
TcpIpDomainType:
EcucEnumerationLiteralDef
EcucEnumerationParamDef

+parameter

+literal TCPIP_AF_INET6:
EcucEnumerationLiteralDef

TcpIpAddressType:
+literal TCPIP_UNICAST:
EcucEnumerationParamDef
EcucEnumerationLiteralDef

+parameter +literal TCPIP_ANYCAST:


EcucEnumerationLiteralDef

+literal TCPIP_MULTICAST:
EcucEnumerationLiteralDef

+destination

TcpIpCtrlRef: TcpIpCtrl:
+reference
EcucReferenceDef EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *
TCPIP_DHCP:
+literal EcucEnumerationLiteralDef
TcpIpAddrAssignment: TcpIpAssignmentMethod:
EcucParamConfContainerDef EcucEnumerationParamDef

lowerMultiplicity = 1 +literal TCPIP_STATIC:


upperMultiplicity = * EcucEnumerationLiteralDef

+literal TCPIP_LINKLOCAL:
+parameter EcucEnumerationLiteralDef

+literal TCPIP_IPV6_ROUTER:
EcucEnumerationLiteralDef

+literal TCPIP_LINKLOCAL_DOIP:
EcucEnumerationLiteralDef

TcpIpAssignmentTrigger: +literal TCPIP_MANUAL:


+subContainer EcucEnumerationParamDef EcucEnumerationLiteralDef
+parameter

+literal TCPIP_AUTOMATIC:
EcucEnumerationLiteralDef

TcpIpAssignmentPriority:
+parameter EcucIntegerParamDef

min = 1
max = 3

TCPIP_FORGET:
+literal EcucEnumerationLiteralDef
TcpIpAssignmentLifetime:
EcucEnumerationParamDef
+parameter
lowerMultiplicity = 0
upperMultiplicity = 1 +literal
TCPIP_STORE:
defaultValue = TCPIP_FORGET EcucEnumerationLiteralDef

TcpIpStaticIpAddressConfig: +parameter TcpIpStaticIpAddress:


EcucParamConfContainerDef EcucStringParamDef
lowerMultiplicity = 0
upperMultiplicity = 1
TcpIpNetmask: EcucIntegerParamDef

+parameter min = 0
+subContainer
max = 128
lowerMultiplicity = 0
upperMultiplicity = 1

+parameter TcpIpDefaultRouter:
EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpLocalAddrIPv6ExtHeaderFilterRef: TcpIpIpV6ConfigExtHeaderFilter:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *

187 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.36 TcpIpLocalAddr

SWS Item ECUC_TcpIp_00020 :


Container Name TcpIpLocalAddr
Parent Container TcpIpConfig
Specifies the local IP (Internet Protocol) addresses used for IP
Description
communication.
Configuration Parameters

SWS Item ECUC_TcpIp_00031 :


Name TcpIpAddressType
Parent Container TcpIpLocalAddr
Description Address type.
Multiplicity 1
Type EcucEnumerationParamDef
Range TCPIP_ANYCAST Anycast address
TCPIP_MULTICAST Multicast address.
TCPIP_UNICAST Unicast address
Post-Build Variant
true
Value
Value Pre-compile time X VARIANT-PRE-COMPILE
Configuration Link time X VARIANT-LINK-TIME
Class Post-build time X VARIANT-POST-BUILD
Scope / scope: local
Dependency

SWS Item ECUC_TcpIp_00029 :


Name TcpIpAddrId
Parent Container TcpIpLocalAddr
Description IP address table identifier assigned by TCP/IP stack.
Multiplicity 1
Type EcucIntegerParamDef (Symbolic Name generated for this parameter)
Range 0 .. 65535
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: ECU

SWS Item ECUC_TcpIp_00030 :


Name TcpIpDomainType
Parent Container TcpIpLocalAddr
Description Address family.
Multiplicity 1
Type EcucEnumerationParamDef
Range TCPIP_AF_INET IPv4 address
TCPIP_AF_INET6 IPv6 address
Post-Build Variant
true
Value
Value Pre-compile time X VARIANT-PRE-COMPILE
Configuration Link time X VARIANT-LINK-TIME
Class Post-build time X VARIANT-POST-BUILD
Scope / scope: local
Dependency

188 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00032 :


Name TcpIpCtrlRef
Parent Container TcpIpLocalAddr
Description Reference to a TcpIpCtrl specifying the EthIf Controller where the IP
address shall be assigned.
Multiplicity 1
Type Reference to [ TcpIpCtrl ]
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00200 :


Name TcpIpLocalAddrIPv6ExtHeaderFilterRef
Parent Container TcpIpLocalAddr
Description Reference to a set of IPv6 Extension Headers which are allowed for this
local IPv6 address.
Note: this parameter is only relevant if the related TcpIpDomainType is
TCPIP_AF_INET6.
Multiplicity 0..1
Type Reference to [ TcpIpIpV6ConfigExtHeaderFilter ]
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency dependency: only relevant if TcpIpDomainType = TCPIP_AF_INET6

Included Containers
Container Name Multiplicity Scope / Dependency
This container is a subcontainer of TcpIpLocalAddr and
TcpIpAddrAssignment 1..*
specifies the assignment policy for the IP address.
This container is a subcontainer of TcpIpLocalAddr and
TcpIpStaticIpAddressConfig 0..1 specifies a static IP address including directly related
parameters.

10.2.37 TcpIpAddrAssignment

SWS Item ECUC_TcpIp_00033 :


Container Name TcpIpAddrAssignment
Parent Container TcpIpLocalAddr
This container is a subcontainer of TcpIpLocalAddr and specifies the
Description
assignment policy for the IP address.
Configuration Parameters

SWS Item ECUC_TcpIp_00186 :


Name TcpIpAssignmentLifetime
Parent Container TcpIpAddrAssignment
189 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description Defines the lifetime of a dynamically fetched IP address.


If TcpIpAssignmentMethod = TCPIP_STATIC then TcpIpAssignmentLifetime shall
be omitted.
Multiplicity 0..1
Type EcucEnumerationParamDef
Range TCPIP_FORGET After a dynamic IP address has been
assigned just use it for this link-up time.
TCPIP_STORE After a dynamic IP address has been
assigned store the address persistently.
Default value TCPIP_FORGET
Post-Build Variant
true
Value
Value Pre-compile time X VARIANT-PRE-COMPILE
Configuration Link time X VARIANT-LINK-TIME
Class Post-build time X VARIANT-POST-BUILD
Scope / scope: local
Dependency

SWS Item ECUC_TcpIp_00035 :


Name TcpIpAssignmentMethod
Parent Container TcpIpAddrAssignment
Description Method of address assignment
Multiplicity 1
Type EcucEnumerationParamDef
Range TCPIP_DHCP Dynamic Assigned IP Address using
DHCP
TCPIP_IPV6_ROUTER Dynamic Configured IPv6 Address by
Router Advertisement
TCPIP_LINKLOCAL Linklocal IPv4/IPv6 Address Assignment
TCPIP_LINKLOCAL_DOIP Linklocal IPv4/IPv6 Address Assignment
using DoIP Parameters
TCPIP_STATIC Static Assigned IP Address
Post-Build Variant
true
Value
Value Pre-compile time X VARIANT-PRE-COMPILE
Configuration Link time X VARIANT-LINK-TIME
Class Post-build time X VARIANT-POST-BUILD
Scope / scope: local
Dependency

SWS Item ECUC_TcpIp_00037 :


Name TcpIpAssignmentPriority
Parent Container TcpIpAddrAssignment
Description Priority of assignment (1 is highest). If a new address from an assignment
method with a higher priority is available, it overwrites the IP address
previously assigned by an assignment method with a lower priority.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 3
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

190 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00036 :


Name TcpIpAssignmentTrigger
Parent Container TcpIpAddrAssignment
Description Trigger of address assignment.
Multiplicity 1
Type EcucEnumerationParamDef
Range TCPIP_AUTOMATIC Assignment shall be initiated automatically by
TCP/IP stack.
TCPIP_MANUAL Assignment shall be initiated manually via
TcpIp_RequestIpAddrAssignment().
Post-Build Variant
true
Value
Value Pre-compile time X VARIANT-PRE-COMPILE
Configuration Link time X VARIANT-LINK-TIME
Class Post-build time X VARIANT-POST-BUILD
Scope / scope: local
Dependency

No Included Containers

10.2.38 TcpIpStaticIpAddressConfig

SWS Item ECUC_TcpIp_00034 :


Container Name TcpIpStaticIpAddressConfig
Parent Container TcpIpLocalAddr
This container is a subcontainer of TcpIpLocalAddr and specifies a static
Description
IP address including directly related parameters.
Configuration Parameters

SWS Item ECUC_TcpIp_00040 :


Name TcpIpDefaultRouter
Parent Container TcpIpStaticIpAddressConfig
Description IP address of default router (gateway)
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00039 :


Name TcpIpNetmask
Parent Container TcpIpStaticIpAddressConfig
191 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description Network mask of IPv4 address or address prefix of IPv6 address in CIDR
Notation, i.e. decimal value between 0 and 32 (IPv4) or 0 and 128 (IPv6)
that describes the number of significant bits defining the network number
or prefix of an IP address.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 0 .. 128
Default value --
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00038 :


Name TcpIpStaticIpAddress
Parent Container TcpIpStaticIpAddressConfig
Description Static IP Address.
To specify any IP address for a certain EthIfCtrl, "ANY" has to be set as
wildcard. See TcpIp_Bind() for more details.
Multiplicity 1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

No Included Containers

TcpIpConfig: +subContainer TcpIpNvmBlock:


EcucParamConfContainerDef EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 1

+reference

TcpIpNvmBlockDescriptorRef: +destination NvMBlockDescriptor: NvMNvramBlockIdentifier:


EcucReferenceDef EcucParamConfContainerDef +parameter EcucIntegerParamDef

requiresSymbolicNameValue = true upperMultiplicity = 65536 symbolicNameValue = true


lowerMultiplicity = 1 min = 2
max = 65535

192 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.39 TcpIpNvmBlock

SWS Item ECUC_TcpIp_00184 :


Container Name TcpIpNvmBlock
Parent Container TcpIpConfig
Configuration of optional usage of Nvm in case the TcpIp module requires
Description non volatile memory in the Ecu to store information (e.g. IP Address
received via DHCP and shall be stored).
Multiplicity Configuration Pre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Configuration Parameters

SWS Item ECUC_TcpIp_00185 :


Name TcpIpNvmBlockDescriptorRef
Parent Container TcpIpNvmBlock
Description Reference to the Nvm block description in the Nvm module configuration.
Multiplicity 1
Type Symbolic name reference to [ NvMBlockDescriptor ]
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: ECU

No Included Containers

TcpIpPhysAddrConfig: TcpIpPhysAddrChgHandler:
EcucParamConfContainerDef EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = 1

+subContainer

TcpIpPhysAddrChgHandlerName:
+parameter
EcucFunctionNameDef

lowerMultiplicity = 1
upperMultiplicity = 1

10.2.40 TcpIpPhysAddrConfig

SWS Item ECUC_TcpIp_00083 :


Container Name TcpIpPhysAddrConfig
Parent Container TcpIpConfig
Description Specifies the physical address configuration.
Configuration Parameters

Included Containers
Container Name Multiplicity Scope / Dependency
TcpIpPhysAddrChgHandler 0..1 This container is a subcontainer of TcpIpPhysAddrConfig and
193 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

specifies the configuration parameters for physical address


change handler.

10.2.41 TcpIpPhysAddrChgHandler

SWS Item ECUC_TcpIp_00084 :


Container Name TcpIpPhysAddrChgHandler
Parent Container TcpIpPhysAddrConfig
This container is a subcontainer of TcpIpPhysAddrConfig and
Description specifies the configuration parameters for physical address change
handler.
Configuration Parameters

SWS Item ECUC_TcpIp_00086 :


Name TcpIpPhysAddrChgHandlerName
Parent Container TcpIpPhysAddrChgHandler
Description This parameter defines the name of the physical address change function
<Up>_PhysAddrTableChg.
Multiplicity 1
Type EcucFunctionNameDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: ECU

No Included Containers

194 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpSocketOwnerConfig:
EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = 1

+subContainer

TcpIpSocketOwner: TcpIpSocketOwnerUpperLayerType: +literal CDD:


EcucParamConfContainerDef EcucEnumerationParamDef EcucEnumerationLiteralDef
+parameter
lowerMultiplicity = 1
upperMultiplicity = *
+literal SOAD:
EcucEnumerationLiteralDef

TcpIpSocketOwnerTcpIpEventName:
+parameter EcucFunctionNameDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpSocketOwnerHeaderFileName:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpSocketOwnerRxIndicationName:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpSocketOwnerTxConfirmationName:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpSocketOwnerTcpAcceptedName:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpSocketOwnerTcpConnectedName:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpSocketOwnerCopyTxDataName:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpSocketOwnerLocalIpAddrAssignmentChgName:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpSocketOwnerId:
EcucIntegerParamDef
+parameter
min = 0
max = 65535
defaultValue = 0
symbolicNameValue = true

195 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.42 TcpIpSocketOwnerConfig

SWS Item ECUC_TcpIp_00172 :


Container Name TcpIpSocketOwnerConfig
Parent Container TcpIpConfig
Description Specifies the upper layer modules of TcpIp using the socket API.
Configuration Parameters

Included Containers
Container Name Multiplicity Scope / Dependency
This container is a subcontainer of TcpIpSocketOwnerConfig
TcpIpSocketOwner 1..*
and specifies an upper layer of TcpIp that uses the socket API.

10.2.43 TcpIpSocketOwner

SWS Item ECUC_TcpIp_00173 :


Container Name TcpIpSocketOwner
Parent Container TcpIpSocketOwnerConfig
This container is a subcontainer of TcpIpSocketOwnerConfig and specifies
Description
an upper layer of TcpIp that uses the socket API.
Configuration Parameters

SWS Item ECUC_TcpIp_00180 :


Name TcpIpSocketOwnerCopyTxDataName
Parent Container TcpIpSocketOwner
Description This parameter defines the name of the <Up_CopyTxData> function of the
TcpIpSocketOwner module. The function name shall only be configurable
if TcpIpSocketOwnerUpperLayerType is set to CDD.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local
dependency: TcpIpSocketOwnerUpperLayerType

SWS Item ECUC_TcpIp_00175 :


Name TcpIpSocketOwnerHeaderFileName
Parent Container TcpIpSocketOwner
Description This parameter specifies the name of the header file containing the
definition of the TcpIpSocketOwner module functions. The header file
name shall only be configurable if TcpIpSocketOwnerUpperLayerType is
set to CDD.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
196 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00316 :


Name TcpIpSocketOwnerId
Parent Container TcpIpSocketOwner
Description This value specifies the ID of the socket user.
Multiplicity 1
Type EcucIntegerParamDef (Symbolic Name generated for this parameter)
Range 0 .. 65535
Default value 0
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00181 :


Name TcpIpSocketOwnerLocalIpAddrAssignmentChgName
Parent Container TcpIpSocketOwner
Description This parameter defines the name of the <Up_LocalIpAddrAssignmentChg>
function of the TcpIpSocketOwner module. The function name shall only
be configurable if TcpIpSocketOwnerUpperLayerType is set to CDD.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local
dependency: TcpIpSocketOwnerUpperLayerType

SWS Item ECUC_TcpIp_00176 :


Name TcpIpSocketOwnerRxIndicationName
Parent Container TcpIpSocketOwner
Description This parameter defines the name of the <Up_RxIndication> function of the
TcpIpSocketOwner module. The function name shall only be configurable
if TcpIpSocketOwnerUpperLayerType is set to CDD.
Multiplicity 0..1
Type EcucStringParamDef
197 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local
dependency: TcpIpSocketOwnerUpperLayerType

SWS Item ECUC_TcpIp_00178 :


Name TcpIpSocketOwnerTcpAcceptedName
Parent Container TcpIpSocketOwner
Description This parameter defines the name of the <Up_TcpAccepted> function of the
TcpIpSocketOwner module. The function name shall only be configurable
if TcpIpSocketOwnerUpperLayerType is set to CDD.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local
dependency: TcpIpSocketOwnerUpperLayerType

SWS Item ECUC_TcpIp_00179 :


Name TcpIpSocketOwnerTcpConnectedName
Parent Container TcpIpSocketOwner
Description This parameter defines the name of the <Up_TcpConnected> function of
the TcpIpSocketOwner module. The function name shall only be
configurable if TcpIpSocketOwnerUpperLayerType is set to CDD.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local
dependency: TcpIpSocketOwnerUpperLayerType

SWS Item ECUC_TcpIp_00197 :


Name TcpIpSocketOwnerTcpIpEventName
Parent Container TcpIpSocketOwner
Description This parameter defines the name of the <Up_TcpIpEvent> function of the

198 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpSocketOwner module. The function name shall only be configurable


if TcpIpSocketOwnerUpperLayerType is set to CDD.
Multiplicity 0..1
Type EcucFunctionNameDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local
dependency: TcpIpSocketOwnerUpperLayerType

SWS Item ECUC_TcpIp_00177 :


Name TcpIpSocketOwnerTxConfirmationName
Parent Container TcpIpSocketOwner
Description This parameter defines the name of the <Up_TxConfirmation> function of
the TcpIpSocketOwner module. The function name shall only be
configurable if TcpIpSocketOwnerUpperLayerType is set to CDD.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local
dependency: TcpIpSocketOwnerUpperLayerType

SWS Item ECUC_TcpIp_00174 :


Name TcpIpSocketOwnerUpperLayerType
Parent Container TcpIpSocketOwner
Description This parameter specifies the type of the upper layer module.
Multiplicity 1
Type EcucEnumerationParamDef
Range CDD Complex Driver
SOAD Socket Adaptor
Post-Build Variant
true
Value
Value Pre-compile time X VARIANT-PRE-COMPILE
Configuration Link time X VARIANT-LINK-TIME
Class Post-build time X VARIANT-POST-BUILD
Scope / scope: local
Dependency

No Included Containers

199 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

+parameter TcpIpTcpNagleEnabled:
TcpIpTcpConfig: EcucBooleanParamDef
EcucParamConfContainerDef
+parameter
TcpIpTcpSlowStartEnabled:
lowerMultiplicity = 0
EcucBooleanParamDef
upperMultiplicity = 1 +parameter
TcpIpTcpCongestionAvoidanceEnabled:
EcucBooleanParamDef
+parameter
TcpIpTcpFastRetransmitEnabled:
EcucBooleanParamDef
+parameter
TcpIpTcpFastRecoveryEnabled:
EcucBooleanParamDef

TcpIpDelayedAckTimeout:
+parameter EcucFloatParamDef

min = 0
max = 0.5
defaultValue = 0.5 TcpIpTcpSynMaxRtx:
+parameter EcucIntegerParamDef

min = 0
TcpIpTcpSynReceivedTimeout: max = 255
+parameter EcucFloatParamDef

min = 0
max = INF
TcpIpTcpFinWait2Timeout:
+parameter EcucFloatParamDef

min = 0
max = INF
TcpIpTcpMsl: EcucFloatParamDef
+parameter
min = 0
max = INF

TcpIpTcpRetransmissionTimeout:
EcucFloatParamDef
+parameter
min = 0.001
max = INF
TcpIpTcpMaxRtx: EcucIntegerParamDef lowerMultiplicity = 0
upperMultiplicity = 1
+parameter min = 0
max = 255
lowerMultiplicity = 0
TcpIpTcpKeepAliveInterval:
upperMultiplicity = 1 +parameter EcucFloatParamDef

min = 0
max = INF
TcpIpTcpKeepAliveProbesMax:
+parameter EcucIntegerParamDef

min = 0
max = 65535 TcpIpTcpTtl: EcucIntegerParamDef
+parameter
min = 1
max = 255
TcpIpTcpReceiveWindowMax:
+parameter EcucIntegerParamDef

min = 0
max = 65535
TcpIpTcpKeepAliveEnabled:
+parameter
EcucBooleanParamDef

defaultValue = false
TcpIpTcpKeepAliveTime:
+parameter EcucFloatParamDef

min = 0
TcpIpTcpConfigOptionFilterId:
max = INF EcucIntegerParamDef
defaultValue = 7200
min = 0
max = 255
TcpIpTcpConfigOptionFilter: +parameter lowerMultiplicity = 1
EcucParamConfContainerDef upperMultiplicity = 1
symbolicNameValue = true
lowerMultiplicity = 0
+subContainer
upperMultiplicity = *
TcpIpTcpConfigOptionFilterEntry:
+parameter EcucIntegerParamDef

min = 0
max = 255
lowerMultiplicity = 0
upperMultiplicity = *

200 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.44 TcpIpTcpConfig

SWS Item ECUC_TcpIp_00025 :


Container Name TcpIpTcpConfig
Parent Container TcpIpConfig
Specifies the configuration parameters of the TCP (Transmission Control
Description
Protocol) sub-module.
Configuration Parameters

SWS Item ECUC_TcpIp_00318 :


Name TcpIpDelayedAckTimeout
Parent Container TcpIpTcpConfig
Description The maximal time an acknowledgment is delayed for transmission in
seconds.For further details, see also IETF RfC 1122 section 4.2.3.2.
Multiplicity 1
Type EcucFloatParamDef
Range ]0 .. 0.5]
Default value 0.5
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00061 :


Name TcpIpTcpCongestionAvoidanceEnabled
Parent Container TcpIpTcpConfig
Description Enables (TRUE) or disables (FALSE) support of TCP congestion
avoidance algorithm according to IETF RFC 5681.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00063 :


Name TcpIpTcpFastRecoveryEnabled
Parent Container TcpIpTcpConfig
Description Enables (TRUE) or disables (FALSE) support of TCP Fast Recovery
according to IETF RFC 5681.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00062 :


Name TcpIpTcpFastRetransmitEnabled
Parent Container TcpIpTcpConfig

201 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description Enables (TRUE) or disables (FALSE) support of TCP Fast Retransmission


according to IETF RFC 5681.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00066 :


Name TcpIpTcpFinWait2Timeout
Parent Container TcpIpTcpConfig
Description Timeout in [s] to receive a FIN from the remote node (after this node has
initiated connection termination), i.e. maximum time waiting in FINWAIT-2
for a connection termination request from the remote TCP.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. INF]
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00082 :


Name TcpIpTcpKeepAliveEnabled
Parent Container TcpIpTcpConfig
Description Enables (TRUE) or disables (FALSE) TCP Keep Alive Probes according to
IETF RFC 1122 chapter 4.2.3.6
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00070 :


Name TcpIpTcpKeepAliveInterval
Parent Container TcpIpTcpConfig
Description Specifies the interval in [s] between subsequent keepalive probes.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. INF]
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local
dependency: TcpIpTcpKeepAliveEnabled

202 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00071 :


Name TcpIpTcpKeepAliveProbesMax
Parent Container TcpIpTcpConfig
Description Maximum number of times that a TCP Keep Alive is retransmitted before
the connection is closed.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local
dependency: TcpIpTcpKeepAliveEnabled

SWS Item ECUC_TcpIp_00087 :


Name TcpIpTcpKeepAliveTime
Parent Container TcpIpTcpConfig
Description Specifies the time in [s] between the last data packet sent (simple ACKs
are not considered data) and the first keepalive probe. Note: Setting this
configuration parameter to a value smaller or equal to the value of
TcpIpMainFunctionPeriod results in the transmission of keep alive probes
within every MainFunction cycle.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. INF]
Default value 7200
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local
dependency: TcpIpTcpKeepAliveEnabled

SWS Item ECUC_TcpIp_00069 :


Name TcpIpTcpMaxRtx
Parent Container TcpIpTcpConfig
Description Maximum number of times that a TCP segment is retransmitted before the
TCP connection is closed. This parameter is only valid if
TcpIpTcpRetransmissionTimeout is configured.
Note: This parameter also applies for FIN retransmissions.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 0 .. 255
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency dependency: TcpIpTcpRetransmissionTimeout

SWS Item ECUC_TcpIp_00067 :


Name TcpIpTcpMsl
Parent Container TcpIpTcpConfig
Description Maximum segment lifetime in [s].

203 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

(Note: TIME-WAIT = 2 x TcpIpTcpMsl - to ensure that the remote node


received the acknowledgment to its connection termination request.)
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. INF]
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00059 :


Name TcpIpTcpNagleEnabled
Parent Container TcpIpTcpConfig
Description Enables (TRUE) or disables (FALSE) support of Nagle's algorithm
according to IETF RFC 1122 (chapter 4.2.3.4 When to Send Data). If
enabled the Nagle's algorithm is activated per default for all TCP sockets,
but can be deactivated via TcpIp_ChangeParameter() API.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00073 :


Name TcpIpTcpReceiveWindowMax
Parent Container TcpIpTcpConfig
Description Default value of maximum receive window in bytes.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00068 :


Name TcpIpTcpRetransmissionTimeout
Parent Container TcpIpTcpConfig
Description Timeout in [s] before an unacknowledged TCP segment is sent again.
If the timeout is disabled or set to INF, no TCP segments shall be
retransmitted.
Multiplicity 0..1
Type EcucFloatParamDef
Range [0.001 .. INF]
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
204 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00060 :


Name TcpIpTcpSlowStartEnabled
Parent Container TcpIpTcpConfig
Description Enables (TRUE) or disables (FALSE) support of TCP slow start algorithm
according to IETF RFC 5681.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00064 :


Name TcpIpTcpSynMaxRtx
Parent Container TcpIpTcpConfig
Description Maximum number of times that a TCP SYN is retransmitted.
Note: SYN will be retried after TcpIpTcpRetransmissionTimeout. The
connection will be dropped if no matching connection request has been
received after the last TCP SYN has been sent and
TcpIpTcpRetransmissionTimeout has been expired.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 255
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00065 :


Name TcpIpTcpSynReceivedTimeout
Parent Container TcpIpTcpConfig
Description Timeout in [s] to complete a remotely initiated TCP connection
establishment, i.e. maximum time waiting in SYN-RECEIVED for a
confirming connection request acknowledgment after having both received
and sent a connection request.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. INF]
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00072 :


Name TcpIpTcpTtl
Parent Container TcpIpTcpConfig
Description Default Time-to-live value of outgoing TCP packets.
Multiplicity 1
205 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Type EcucIntegerParamDef
Range 1 .. 255
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
This container describes the white list for the filtering of TCP
TcpIpTcpConfigOptionFilter 0..* options, i.e. segments containing TCP options not listed here
shall be silently dropped.

10.2.45 TcpIpTcpConfigOptionFilter

SWS Item ECUC_TcpIp_00202 :


Container Name TcpIpTcpConfigOptionFilter
Parent Container TcpIpTcpConfig
This container describes the white list for the filtering of TCP options, i.e.
Description
segments containing TCP options not listed here shall be silently dropped.
Post-Build Variant
true
Multiplicity
Multiplicity Configuration Pre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Configuration Parameters

SWS Item ECUC_TcpIp_00204 :


Name TcpIpTcpConfigOptionFilterEntry
Parent Container TcpIpTcpConfigOptionFilter
Description TCP option kind allowed by this filter.
Multiplicity 0..*
Type EcucIntegerParamDef
Range 0 .. 255
Default value --
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00203 :


Name TcpIpTcpConfigOptionFilterId
Parent Container TcpIpTcpConfigOptionFilter
Description Identification of the TCP option filter.
Multiplicity 1
206 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Type EcucIntegerParamDef (Symbolic Name generated for this parameter)


Range 0 .. 255
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

No Included Containers

TcpIpUdpConfig: TcpIpUdpTtl: EcucIntegerParamDef


EcucParamConfContainerDef +parameter
min = 1
lowerMultiplicity = 0 max = 255
upperMultiplicity = 1

10.2.46 TcpIpUdpConfig

SWS Item ECUC_TcpIp_00026 :


Container Name TcpIpUdpConfig
Parent Container TcpIpConfig
Specifies the configuration parameters of the UDP (User Datagram
Description
Protocol) sub-module
Configuration Parameters

SWS Item ECUC_TcpIp_00075 :


Name TcpIpUdpTtl
Parent Container TcpIpUdpConfig
Description Default Time-to-live value of outgoing UDP packets.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 255
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

No Included Containers

207 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpConfig:
EcucParamConfContainerDef

CsmJobId:
+subContainer EcucIntegerParamDef

TcpIpTlsConfig: min = 0
TcpIpTlsMaxConnections:
EcucParamConfContainerDef max = 4294967295
EcucIntegerParamDef
+parameter symbolicNameValue = true
lowerMultiplicity = 0 min = 1
upperMultiplicity = 1 max = 65535 +parameter
(from Csm)

CsmJob:
+reference TcpIpTlsCsmRandomGenerateJobRef: +destination EcucParamConfContainerDef
EcucReferenceDef
lowerMultiplicity = 1
requiresSymbolicNameValue = true
upperMultiplicity = *

(from Csm)
TcpIpTlsConnectionGroup:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = *

TcpIpTlsConnection:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

TcpIpTlsCiphersuites:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = 1

10.2.47 TcpIpTlsConfig

SWS Item ECUC_TcpIp_00219 :


Container Name TcpIpTlsConfig
Parent Container TcpIpConfig
Specifies the configuration parameters of the TLS (Transport Layer
Description
Security) sub module.
Configuration Parameters

SWS Item ECUC_TcpIp_00220 :


Name TcpIpTlsMaxConnections
Parent Container TcpIpTlsConfig
Description Defines the max. number of TLS connections that can be opened at the
same time.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 65535
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

208 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00221 :


Name TcpIpTlsCsmRandomGenerateJobRef
Parent Container TcpIpTlsConfig
Description Reference to a CSM job to generate a random value.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
This container provides the information about supported
TcpIpTlsCiphersuites 1
ciphersuites used by TLS.
TcpIpTlsConnection 1..* This container defines the properties of a TLS connection
This optional container is used to collect all TlsConnections
that belong to a TlsConnectionGroup. The intention of a TLS
TcpIpTlsConnectionGroup 0..* connection group is to share resources among TLS
connections collected in a group, because only one connection
of a group can be used at a time.

10.2.48 TcpIpTlsConnectionGroup

SWS Item ECUC_TcpIp_00224 :


Container Name TcpIpTlsConnectionGroup
Parent Container TcpIpTlsConfig
This optional container is used to collect all TlsConnections that belong to
a TlsConnectionGroup. The intention of a TLS connection group is to
Description
share resources among TLS connections collected in a group, because
only one connection of a group can be used at a time.
Configuration Parameters

No Included Containers

209 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpTlsConnection:
TcpIpTlsConnectionId:
EcucParamConfContainerDef
+parameter EcucIntegerParamDef
lowerMultiplicity = 1
min = 0
upperMultiplicity = *
max = 65535
symbolicNameValue = true

TcpIpTlsConnectionType: +literal TLS_CLIENT:


EcucEnumerationParamDef EcucEnumerationLiteralDef

+parameter

+literal TLS_SERVER:
EcucEnumerationLiteralDef

TcpIpTlsMaxFragmentLength:
+parameter EcucIntegerParamDef

min = 1
max = 16384
symbolicNameValue = true

TcpIpTlsPortAssignment:
EcucIntegerParamDef
+parameter
min = 1
max = 65535
lowerMultiplicity = 0
upperMultiplicity = 1
symbolicNameValue = true

TcpIpTlsIpAddressAssignment: TcpIpStaticIpAddressConfig:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = 1

TcpIpTlsUseClientAuthenticationRequest:
+parameter EcucBooleanParamDef

defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1

+parameter TcpIpTlsUseSecurityExtensionRecordSizeLimit:
EcucBooleanParamDef

defaultValue = false

TcpIpTlsConnectionGetTimeFunc:
+parameter EcucFunctionNameDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpTlsConnectionGroupRef: TcpIpTlsConnectionGroup:
+reference EcucReferenceDef +destination
EcucParamConfContainerDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = *

TcpIpTlsConnectionCiphersuiteWorkerRef: TcpIpTlsCiphersuiteWorker:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = * upperMultiplicity = *

TcpIpTlsCertificateIdentityRef: TcpIpTlsCertificateIdentity:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = * upperMultiplicity = *

TcpIpTlsConnectionPskIdentityRef: TcpIpTlsPskIdentity:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = *

210 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.49 TcpIpTlsConnection

SWS Item ECUC_TcpIp_00223 :


Container Name TcpIpTlsConnection
Parent Container TcpIpTlsConfig
Description This container defines the properties of a TLS connection
Configuration Parameters

SWS Item ECUC_TcpIp_00232 :


Name TcpIpTlsConnectionGetTimeFunc
Parent Container TcpIpTlsConnection
Description Defines the function name for the Up_TlsGetCurrentTimeStamp() callback.
Multiplicity 0..1
Type EcucFunctionNameDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: This definition is needed if a connection specific time shall be
provided with the client hello message. If not present, the time will be set to
0.

SWS Item ECUC_TcpIp_00225 :


Name TcpIpTlsConnectionId
Parent Container TcpIpTlsConnection
Description Identifier of the connection. The set of configured identifiers shall be
consecutive and gapless.
Multiplicity 1
Type EcucIntegerParamDef (Symbolic Name generated for this parameter)
Range 0 .. 65535
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00226 :


Name TcpIpTlsConnectionType
Parent Container TcpIpTlsConnection
Description Specifies if the TLS connection is a server or a client.
Multiplicity 1
Type EcucEnumerationParamDef
Range TLS_CLIENT --
TLS_SERVER --
Post-Build Variant false
211 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Value
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_TcpIp_00227 :


Name TcpIpTlsMaxFragmentLength
Parent Container TcpIpTlsConnection
Description Specifies the max length in bytes of a TLS fragment that is sent as a block.
Multiplicity 1
Type EcucIntegerParamDef (Symbolic Name generated for this parameter)
Range 1 .. 16384
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00285 :


Name TcpIpTlsPortAssignment
Parent Container TcpIpTlsConnection
Description Specifies the port address that is used for TLS communication.
Multiplicity 0..1
Type EcucIntegerParamDef (Symbolic Name generated for this parameter)
Range 1 .. 65535
Default value --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00230 :


Name TcpIpTlsUseClientAuthenticationRequest
Parent Container TcpIpTlsConnection
Description Defines if client authentication shall be applied for this TLS connection.
Multiplicity 0..1
Type EcucBooleanParamDef
Default value false
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
212 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Scope / Dependency dependency: Informs the TLS_SERVER that a client authentication shall
be requested. Can be omitted on TLS_CLIENT side.

SWS Item ECUC_TcpIp_00231 :


Name TcpIpTlsUseSecurityExtensionRecordSizeLimit
Parent Container TcpIpTlsConnection
Description Defines if the security extension for max_fragment_length shall be
supported as defined in IETF RFC 8449, chapter 4.1.
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00235 :


Name TcpIpTlsCertificateIdentityRef
Parent Container TcpIpTlsConnection
Description References the container that contains the certificate and identity
information.
Multiplicity 1..*
Type Reference to [ TcpIpTlsCertificateIdentity ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: There shall be only one TlsCertificateIdentity reference if
server name identification is not used.

SWS Item ECUC_TcpIp_00234 :


Name TcpIpTlsConnectionCiphersuiteWorkerRef
Parent Container TcpIpTlsConnection
Description References the container that contains the jobs and keys to process the
application data.
Multiplicity 1..*
Type Reference to [ TcpIpTlsCiphersuiteWorker ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00233 :


213 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Name TcpIpTlsConnectionGroupRef
Parent Container TcpIpTlsConnection
Description Assigns the TLS connection to a connection group.
Multiplicity 0..*
Type Reference to [ TcpIpTlsConnectionGroup ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00236 :


Name TcpIpTlsConnectionPskIdentityRef
Parent Container TcpIpTlsConnection
Description References the container that contains information about pre-shared keys.
Multiplicity 0..*
Type Reference to [ TcpIpTlsPskIdentity ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: A reference to PskIdentity container is only useful if at least
one CiphersuiteDefinition is referenced offering a PSK ciphersuite.
Multiplicity might be reduced to 1 to provide a unique PSK identification
depending on the TLS protocol version and/or ifit is used for the TLS
server or client.

SWS Item ECUC_TcpIp_00229 :


Name TcpIpTlsIpAddressAssignment
Parent Container TcpIpTlsConnection
Description Contains additional information about the endpoint IP address information.
If this reference is present, the IP address of the connecting socket shall
also be checked if a TLS connection shall be assigned automatically to a
socket.
Multiplicity 0..1
Type Reference to [ TcpIpStaticIpAddressConfig ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --

214 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Scope / Dependency scope: local


dependency: If this item is not present but TcpIpTlsPortAssignment is
defined, then IP address information is not relevant for the TLS connection
assignment.
If TcpIpTlsPortAssignment is not defined this item has no affect and shall
not be defined, too.

No Included Containers

TcpIpTlsCiphersuites: TcpIpTlsCiphersuiteDefinition:
EcucParamConfContainerDef +subContainer EcucParamConfContainerDef

lowerMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = *

TcpIpTlsCiphersuiteWorker:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

TcpIpTlsHandshake:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

TcpIpTlsCertificateIdentity:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

TcpIpTlsPskIdentity:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = *

10.2.50 TcpIpTlsCiphersuites

SWS Item ECUC_TcpIp_00222 :


Container Name TcpIpTlsCiphersuites

215 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Parent Container TcpIpTlsConfig


This container provides the information about supported ciphersuites used
Description
by TLS.
Configuration Parameters

Included Containers
Container Name Multiplicity Scope / Dependency
This container provides information about the certificates used
TcpIpTlsCertificateIdentity 1..*
for ciphersuites.
This container provides the static information of a ciphersuite
TcpIpTlsCiphersuiteDefinition 1..*
used by TLS.
This container provides the jobs and keys necessary for TLS
TcpIpTlsCiphersuiteWorker 1..*
data transmission and reception.
This container provides information that is needed to process a
handshake. It contains the appropriate references to jobs and
TcpIpTlsHandshake 1..*
keys of the CSM to perform the key exchange cryptographic
for the ciphersuite and involved certificates.
This container provides information about static definition of
pre-shared keys. It is used during the handshake to negotiate
pre-shared keys between a client and a server.
Note: The callbacks for pre-shared keys are an alternative to
TcpIpTlsPskIdentity 0..*
the static definition. The callbacks allow to define the
associated keys at runtime if pre-shared keys are used but no
static definition is available. The container definition is used for
static configuration.

216 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpTlsCiphersuiteDefinition:
TcpIpTlsCiphersuiteId:
EcucParamConfContainerDef
+parameter EcucIntegerParamDef
lowerMultiplicity = 1
min = 0
upperMultiplicity = *
max = 65535

TcpIpTlsCiphersuitePriority:
+parameter EcucIntegerParamDef

min = 1
max = 65535

TcpIpTlsCiphersuiteName:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1

+parameter TcpIpTlsUsePresharedKeys:
EcucBooleanParamDef

defaultValue = false

+parameter TcpIpTlsUseSecurityExtensionForceEncryptThenMac:
EcucBooleanParamDef

defaultValue = false

+parameter TcpIpTlsUseAEADCipher:
EcucBooleanParamDef

defaultValue = false

TcpIpTlsVersion: +literal TLS_VERSION_V12:


EcucEnumerationParamDef EcucEnumerationLiteralDef

+parameter

+literal TLS_VERSION_V13:
EcucEnumerationLiteralDef

10.2.51 TcpIpTlsCiphersuiteDefinition

SWS Item ECUC_TcpIp_00237 :


Container Name TcpIpTlsCiphersuiteDefinition
Parent Container TcpIpTlsCiphersuites
Description This container provides the static information of a ciphersuite used by TLS.
Configuration Parameters

SWS Item ECUC_TcpIp_00242 :


Name TcpIpTlsCiphersuiteId
Parent Container TcpIpTlsCiphersuiteDefinition
Description ID that represents the ciphersuite according to IETF, e.g. RFC4492, Sect.
6, RFC8446, Appendix B.4 or RFC5246, Appendix A.5.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-Build Variant Value false

217 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Value Configuration Class Pre-compile time X All Variants


Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00244 :


Name TcpIpTlsCiphersuiteName
Parent Container TcpIpTlsCiphersuiteDefinition
Description Provides a verbal name for the ciphersuite. The name should be the one
defined in the respective RFC, e.g.
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (TLS 1.2) or
TLS_AES_128_GCM_SHA256 (TLS 1.3)
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00243 :


Name TcpIpTlsCiphersuitePriority
Parent Container TcpIpTlsCiphersuiteDefinition
Description Defines the priority of the cipher. The higher the number the lower the
priority.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 65535
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00247 :


Name TcpIpTlsUseAEADCipher
Parent Container TcpIpTlsCiphersuiteDefinition
Description Specifies if the ciphersuite supports AEAD for data en-/decryption.
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00245 :


Name TcpIpTlsUsePresharedKeys
Parent Container TcpIpTlsCiphersuiteDefinition
Description Defines if this ciphersuite uses pre-shared keys. If so, additional
218 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

configuration or callbacks will be used for pre-shared key negotiation.


Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00246 :


Name TcpIpTlsUseSecurityExtensionForceEncryptThenMac
Parent Container TcpIpTlsCiphersuiteDefinition
Description Defines if the security extension according to IETF RFC 7366 shall be
supported. This is useful for ciphersuites using CBC mode.
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00248 :


Name TcpIpTlsVersion
Parent Container TcpIpTlsCiphersuiteDefinition
Description Declares the TLS version that this ciphersuite shall be used for.
Multiplicity 1
Type EcucEnumerationParamDef
Range TLS_VERSION_V12 --
TLS_VERSION_V13 --
Post-Build Variant
false
Value
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

No Included Containers

219 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpTlsCiphersuiteWorker: TcpIpTlsConnectionHandshakeRef: TcpIpTlsHandshake:


EcucParamConfContainerDef +reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 1 lowerMultiplicity = 1 lowerMultiplicity = 1


upperMultiplicity = * upperMultiplicity = * upperMultiplicity = *

TcpIpTlsCiphersuiteDefinitionRef: TcpIpTlsCiphersuiteDefinition:
+reference EcucReferenceDef +destination EcucParamConfContainerDef

lowerMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = 1 upperMultiplicity = *

TcpIpTlsCipherCsmEncryptJobRef:
CsmJob:
+reference EcucReferenceDef
+destination EcucParamConfContainerDef
lowerMultiplicity = 0
lowerMultiplicity = 1
upperMultiplicity = 1
upperMultiplicity = *
requiresSymbolicNameValue = true

TcpIpTlsCipherCsmDecryptJobRef: CsmJobId:
+reference EcucReferenceDef +destination EcucIntegerParamDef
+parameter
lowerMultiplicity = 0 min = 0
upperMultiplicity = 1 max = 4294967295
requiresSymbolicNameValue = true symbolicNameValue = true

(from Csm)
TcpIpTlsCipherCsmMacGenerateJobRef:
+reference EcucReferenceDef +destination
lowerMultiplicity = 1
upperMultiplicity = 1
requiresSymbolicNameValue = true

TcpIpTlsCipherCsmMacVerifyJobRef: +destination
+reference EcucReferenceDef

lowerMultiplicity = 1
upperMultiplicity = 1 (from Csm)
requiresSymbolicNameValue = true

TcpIpTlsCipherCsmEncryptKeyRef:
+reference EcucReferenceDef
CsmKey:
+destination
lowerMultiplicity = 0 EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0
requiresSymbolicNameValue = true
upperMultiplicity = *
CsmKeyId:
TcpIpTlsCipherCsmDecryptKeyRef: EcucIntegerParamDef
+parameter
+reference EcucReferenceDef +destination
symbolicNameValue = true
lowerMultiplicity = 0 min = 0
upperMultiplicity = 1 max = 4294967295
requiresSymbolicNameValue = true
(from Csm)
TcpIpTlsCipherCsmMacGenerateKeyRef:
+reference EcucReferenceDef +destination
lowerMultiplicity = 1
upperMultiplicity = 1
requiresSymbolicNameValue = true

TcpIpTlsCipherCsmMacVerifyKeyRef:
+destination
+reference EcucReferenceDef

lowerMultiplicity = 1
upperMultiplicity = 1
requiresSymbolicNameValue = true (from Csm)

TcpIpTlsCipherEncryptKeyLength:
EcucIntegerParamDef
+parameter TcpIpTlsCipherAEADCipherKeyLength:
min = 1 EcucIntegerParamDef
max = 65535
lowerMultiplicity = 0 min = 1
upperMultiplicity = 1 max = 65535
+parameter
lowerMultiplicity = 0
upperMultiplicity = 1
TcpIpTlsCipherMacKeyLength:
+parameter EcucIntegerParamDef

min = 1
max = 65535
lowerMultiplicity = 0
upperMultiplicity = 1

10.2.52 TcpIpTlsCiphersuiteWorker

SWS Item ECUC_TcpIp_00238 :


Container Name TcpIpTlsCiphersuiteWorker
Parent Container TcpIpTlsCiphersuites
This container provides the jobs and keys necessary for TLS data
Description
transmission and reception.
Configuration Parameters

220 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00254 :


Name TcpIpTlsCipherAEADCipherKeyLength
Parent Container TcpIpTlsCiphersuiteWorker
Description Defines the key length for en- / decryption with authentication data
(AEAD).
Multiplicity 0..1
Type EcucIntegerParamDef
Range 1 .. 65535
Default value --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: This value shall only be set if the cipher uses AEAD. If such a
worker is selected, then Csm_AEADEncrypt() and Csm_AEADDecrypt()
shall be used and AEAD shall be supported. Required to be set when
TcpIpTlsCipherDefinition/TcpIpTlsAEADCipher is set to TRUE.

SWS Item ECUC_TcpIp_00253 :


Name TcpIpTlsCipherEncryptKeyLength
Parent Container TcpIpTlsCiphersuiteWorker
Description Defines the key length used for en- or decryption. The key length is valid
for (symmetric) encryption and decryption.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 1 .. 65535
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00257 :


Name TcpIpTlsCipherMacKeyLength
Parent Container TcpIpTlsCiphersuiteWorker
Description Specifies the length of the MAC key
Multiplicity 0..1
Type EcucIntegerParamDef
Range 1 .. 65535
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00255 :


Name TcpIpTlsCipherCsmDecryptJobRef
Parent Container TcpIpTlsCiphersuiteWorker
221 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description Reference to a CSM job to perform the data decryption operation


Multiplicity 0..1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00256 :


Name TcpIpTlsCipherCsmDecryptKeyRef
Parent Container TcpIpTlsCiphersuiteWorker
Description Reference to a CSM key associated to the CSM job that performs the data
decryption operation
Multiplicity 0..1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00251 :


Name TcpIpTlsCipherCsmEncryptJobRef
Parent Container TcpIpTlsCiphersuiteWorker
Description Reference to a CSM job to perform the data encryption operation
Multiplicity 0..1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00252 :


Name TcpIpTlsCipherCsmEncryptKeyRef
Parent Container TcpIpTlsCiphersuiteWorker
Description Reference to a CSM key associated to the CSM job that performs the data
encryption operation
Multiplicity 0..1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00258 :


Name TcpIpTlsCipherCsmMacGenerateJobRef
Parent Container TcpIpTlsCiphersuiteWorker
Description Reference to a CSM job to perform the MAC generate operation
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
222 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00259 :


Name TcpIpTlsCipherCsmMacGenerateKeyRef
Parent Container TcpIpTlsCiphersuiteWorker
Description Reference to a CSM key associated to the CSM job that performs the MAC
generate operation
Multiplicity 1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00260 :


Name TcpIpTlsCipherCsmMacVerifyJobRef
Parent Container TcpIpTlsCiphersuiteWorker
Description Reference to a CSM job to perform the MAC verify operation
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00261 :


Name TcpIpTlsCipherCsmMacVerifyKeyRef
Parent Container TcpIpTlsCiphersuiteWorker
Description Reference to a CSM key associated to the CSM job that performs the MAC
verify operation
Multiplicity 1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00250 :


Name TcpIpTlsCiphersuiteDefinitionRef
Parent Container TcpIpTlsCiphersuiteWorker
Description Reference to a a ciphersuite definition container
Multiplicity 1
Type Reference to [ TcpIpTlsCiphersuiteDefinition ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00249 :


Name TcpIpTlsConnectionHandshakeRef
Parent Container TcpIpTlsCiphersuiteWorker
223 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description References the container that contains the jobs and keys for handshake
operation.
Referencing multiple handshake containers allow to share them between
workers and to choose the next unused during the handshake.
Multiplicity 1..*
Type Reference to [ TcpIpTlsHandshake ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

224 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpTlsHandshake:
TcpIpTlsCsmPrfMacJobRef: EcucReferenceDef CsmJob:
EcucParamConfContainerDef
+reference lowerMultiplicity = 1 +destination EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = *
requiresSymbolicNameValue = true upperMultiplicity = *

CsmJobId:
TcpIpTlsCsmHashVerifyJobRef: EcucReferenceDef EcucIntegerParamDef
+parameter
+reference lowerMultiplicity = 1 +destination
min = 0
upperMultiplicity = 1 max = 4294967295
requiresSymbolicNameValue = true symbolicNameValue = true

(from Csm)

TcpIpTlsCsmKeyExchangeCalcPubValJobRef:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

TcpIpTlsCsmKeyExchangeCalcSecretJobRef:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

TcpIpTlsCsmKeyExchangeSignatureGenerateJobRef:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

TcpIpTlsCsmKeyExchangeSignatureVerifyJobRef:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

TcpIpTlsCsmKeyExchangeEncryptJobRef:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

TcpIpTlsCsmKeyExchangeDecryptJobRef:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

(from Csm)

CsmKey:
TcpIpTlsCsmPrfMacKeyRef: EcucReferenceDef EcucParamConfContainerDef
+reference lowerMultiplicity = 1 +destination
lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *
requiresSymbolicNameValue = true
CsmKeyId:
+parameter EcucIntegerParamDef

TcpIpTlsCsmMasterSecretKeyRef: EcucReferenceDef symbolicNameValue = true


min = 0
+reference lowerMultiplicity = 0 +destination max = 4294967295
upperMultiplicity = 1
requiresSymbolicNameValue = true (from Csm)

TcpIpTlsCsmKeyExchangeKeyRef: EcucReferenceDef
+reference lowerMultiplicity = 0 +destination
upperMultiplicity = 1
requiresSymbolicNameValue = true

TcpIpTlsCsmKeyExchangeSignatureGenerateKeyRef:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

TcpIpTlsCsmKeyExchangeSignatureVerifyKeyRef:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

TcpIpTlsCsmKeyExchangeEncryptKeyRef:
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true

TcpIpTlsCsmKeyExchangeDecryptKeyRef:
EcucReferenceDef +destination
+reference
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
(from Csm)

TcpIpTlsCsmPRFSupportType: +literal TLS_PRF_CSM_NO_SUPPORT:


EcucEnumerationParamDef EcucEnumerationLiteralDef

lowerMultiplicity = 0
upperMultiplicity = 1
+literal TLS_PRF_CSM_INOUT_REDIRECT_SUPPORT:
+parameter EcucEnumerationLiteralDef

+literal TLS_PRF_CSM_FULL_SUPPORT:
EcucEnumerationLiteralDef

+literal TLS_PRF_NO_SUPPORT:
EcucEnumerationLiteralDef

225 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.53 TcpIpTlsHandshake

SWS Item ECUC_TcpIp_00239 :


Container Name TcpIpTlsHandshake
Parent Container TcpIpTlsCiphersuites
This container provides information that is needed to process a
handshake. It contains the appropriate references to jobs and keys of the
Description
CSM to perform the key exchange cryptographic for the ciphersuite and
involved certificates.
Configuration Parameters

SWS Item ECUC_TcpIp_00264 :


Name TcpIpTlsCsmPRFSupportType
Parent Container TcpIpTlsHandshake
Description Specifies how the CSM job supports the PRF operation.
Multiplicity 0..1
Type EcucEnumerationParamDef
Range TLS_PRF_CSM_FULL_SUPPORT --
TLS_PRF_CSM_INOUT_REDIRECT_- --
SUPPORT
TLS_PRF_CSM_NO_SUPPORT --
TLS_PRF_NO_SUPPORT --
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_TcpIp_00265 :


Name TcpIpTlsCsmHashVerifyJobRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM job to perform the hash operation for the whole
handshake.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00267 :


Name TcpIpTlsCsmKeyExchangeCalcPubValJobRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM job to perform the DH Key Exchange algorithm
226 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

operation
Multiplicity 0..1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00269 :


Name TcpIpTlsCsmKeyExchangeCalcSecretJobRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM job to perform the Key Exchange algorithm operation
Multiplicity 0..1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: Only required if asynchronous job is used for key exchange
calculation.

SWS Item ECUC_TcpIp_00276 :


Name TcpIpTlsCsmKeyExchangeDecryptJobRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM job to perform data decryption, e.g. with RSA key
exchange operation.
Multiplicity 0..1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00277 :


Name TcpIpTlsCsmKeyExchangeDecryptKeyRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM key to perform data decryption, e.g. with RSA, used
for exchange operation.
227 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Multiplicity 0..1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00274 :


Name TcpIpTlsCsmKeyExchangeEncryptJobRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM job to perform data encryption, e.g. with RSA key
exchange operation.
Multiplicity 0..1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00275 :


Name TcpIpTlsCsmKeyExchangeEncryptKeyRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM key to perform data encryption, e.g. with RSA, used
for exchange operation.
Multiplicity 0..1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00268 :


Name TcpIpTlsCsmKeyExchangeKeyRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM key used for Diffie Hellman (DH) key exchange
operation.
Multiplicity 0..1
Type Symbolic name reference to [ CsmKey ]
228 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00270 :


Name TcpIpTlsCsmKeyExchangeSignatureGenerateJobRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM job to perform signature generation for DH operation
Multiplicity 0..1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00271 :


Name TcpIpTlsCsmKeyExchangeSignatureGenerateKeyRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM key to perform signature generation for DH operation
Multiplicity 0..1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00272 :


Name TcpIpTlsCsmKeyExchangeSignatureVerifyJobRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM job to perform signature verification for DH operation
Multiplicity 0..1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
229 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00273 :


Name TcpIpTlsCsmKeyExchangeSignatureVerifyKeyRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM key to perform signature verification for DH operation
Multiplicity 0..1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00266 :


Name TcpIpTlsCsmMasterSecretKeyRef
Parent Container TcpIpTlsHandshake
Description This is the reference to the master key that is calculated during the
session.
Multiplicity 0..1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00262 :


Name TcpIpTlsCsmPrfMacJobRef
Parent Container TcpIpTlsHandshake
Description Reference to a CSM job to perform the PRF hash operation
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00263 :


Name TcpIpTlsCsmPrfMacKeyRef
Parent Container TcpIpTlsHandshake
230 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description Reference to a CSM key associated to the CSM job that performs the PRF
hash operation
Multiplicity 1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

TcpIpTlsCipherKeyMLocalCertificate: KeyMCertificate:
TcpIpTlsCertificateIdentity:
EcucReferenceDef EcucParamConfContainerDef
EcucParamConfContainerDef +reference +destination
requiresSymbolicNameValue = true lowerMultiplicity = 0
lowerMultiplicity = 1
lowerMultiplicity = 0 upperMultiplicity = 65535
upperMultiplicity = *
upperMultiplicity = 1

TcpIpTlsCipherKeyMRemoteCertificate:
+reference EcucReferenceDef +destination
requiresSymbolicNameValue = true
lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpTlsServerNameIdentification:
+parameter EcucStringParamDef (from KeyM)

lowerMultiplicity = 0
upperMultiplicity = 1

10.2.54 TcpIpTlsCertificateIdentity

SWS Item ECUC_TcpIp_00240 :


Container Name TcpIpTlsCertificateIdentity
Parent Container TcpIpTlsCiphersuites
This container provides information about the certificates used for
Description
ciphersuites.
Configuration Parameters

SWS Item ECUC_TcpIp_00278 :


Name TcpIpTlsServerNameIdentification
Parent Container TcpIpTlsCertificateIdentity
Description Defines a server identification name. If present, the name will be added as
an extension with the "TLS client hello" handshake message. The TLS
server will check for the name to identify the server certificate.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
231 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-Build Variant Value false


Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: Only needed if server name authentication is used.

SWS Item ECUC_TcpIp_00286 :


Name TcpIpTlsCipherKeyMLocalCertificate
Parent Container TcpIpTlsCertificateIdentity
Description Reference to a KeyM certificate used to address the local certificate.
Multiplicity 0..1
Type Symbolic name reference to [ KeyMCertificate ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: Required if TcpIpTlsConnectionType is TLS_SERVER. Also
required if TcpIpTlsConnectionType is TLS_CLIENT and the server
requests a bidirectional authentication.

SWS Item ECUC_TcpIp_00287 :


Name TcpIpTlsCipherKeyMRemoteCertificate
Parent Container TcpIpTlsCertificateIdentity
Description Reference to KeyM certificate container to reference the remote certificate.
Multiplicity 0..1
Type Symbolic name reference to [ KeyMCertificate ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: This optional parameter is needed by the TLS_CLIENT and
is used to verify the certificate provided by the TLS_SERVER. It is also
required by the TLS_SERVER if bidirectional authentication will be
requested. Otherwise, this parameter can be omitted.

No Included Containers

232 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpTlsPskIdentity: TcpIpTlsPresharedKeyIdentityHint:
EcucParamConfContainerDef +parameter EcucStringParamDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = 1

TcpIpTlsPresharedKeyIdentity:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1 CsmKey:
EcucParamConfContainerDef

TcpIpTlsPresharedKeyCsmKeyRef: EcucReferenceDef lowerMultiplicity = 0


upperMultiplicity = *
+reference lowerMultiplicity = 0 +destination
CsmKeyId:
upperMultiplicity = 1
+parameter EcucIntegerParamDef
requiresSymbolicNameValue = true
symbolicNameValue = true
min = 0
max = 4294967295
TcpIpTlsPskGetClientKeyIdentityFunc: (from Csm)
+parameter EcucFunctionNameDef (from Csm)

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpTlsPskGetServerKeyIdentityFunc:
+parameter EcucFunctionNameDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpTlsPskGetKeyIdentityHintFunc:
+parameter EcucFunctionNameDef

lowerMultiplicity = 0
upperMultiplicity = 1

10.2.55 TcpIpTlsPskIdentity

SWS Item ECUC_TcpIp_00241 :


Container Name TcpIpTlsPskIdentity
Parent Container TcpIpTlsCiphersuites
This container provides information about static definition of pre-shared
keys. It is used during the handshake to negotiate pre-shared keys
between a client and a server.
Description Note: The callbacks for pre-shared keys are an alternative to the static
definition. The callbacks allow to define the associated keys at runtime if
pre-shared keys are used but no static definition is available. The container
definition is used for static configuration.
Configuration Parameters

SWS Item ECUC_TcpIp_00284 :


Name TcpIpTlsPresharedKeyIdentity
Parent Container TcpIpTlsPskIdentity
Description This item provides the key identification. The TLS client selects the pre-
shared key based on the identification hint provided by the server and
returns the key identification name back to the server.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants

233 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Link time --
Post-build time --
Scope / Dependency scope: local
dependency: The callback function < Up_TlsClientGetPskIdentity> is used
if the ciphersuite defines pre-shared key but this parameter is not present.

SWS Item ECUC_TcpIp_00279 :


Name TcpIpTlsPresharedKeyIdentityHint
Parent Container TcpIpTlsPskIdentity
Description Provides the identity hint for a pre-shared key. This information is
transmitted by the TLS Server to provide its identification to the TLS client.
The TLS client uses the same information to select the pre-shared key.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: The callback function <Up_TlsServerGetPskIdentityHint> is
used if the ciphersuite defines pre-shared key but this parameter is not
present.

SWS Item ECUC_TcpIp_00281 :


Name TcpIpTlsPskGetClientKeyIdentityFunc
Parent Container TcpIpTlsPskIdentity
Description Defines the function name for the Up_TlsClientGetPskIdentity() callback.
Multiplicity 0..1
Type EcucFunctionNameDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: This definition is needed if a pre-shared key ciphersuite is
used and TcpIpTlsPresharedKeyIdentity configuration parameter is not
present. In this case, the callback function will be used to query the key
identification.

234 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_TcpIp_00283 :


Name TcpIpTlsPskGetKeyIdentityHintFunc
Parent Container TcpIpTlsPskIdentity
Description Defines the function name for the Up_TlsServerGetPskIdentityHint()
callback.
Multiplicity 0..1
Type EcucFunctionNameDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: This definition is needed if a pre-shared key ciphersuite is
used and TcpIpTlsPresharedKeyGetKeyIdentityHint configuration
parameter is not present. In this case, the callback function will be used to
query the key identity hint.

SWS Item ECUC_TcpIp_00282 :


Name TcpIpTlsPskGetServerKeyIdentityFunc
Parent Container TcpIpTlsPskIdentity
Description Defines the function name for the Up_TlsServerGetPskIdentity () callback.
Multiplicity 0..1
Type EcucFunctionNameDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: This definition is needed if a pre-shared key ciphersuite is
used and TcpIpTlsPresharedKeyIdentity configuration parameter is not
present. In this case, the callback function will be used to query the key
identification.

SWS Item ECUC_TcpIp_00280 :


Name TcpIpTlsPresharedKeyCsmKeyRef
Parent Container TcpIpTlsPskIdentity
Description Reference to a CSM key associated to the CSM job that performs the PRF
hash operation

235 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Multiplicity 0..1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: Callback <Up_Tls[Server|Client]GetPskIdentity> is used
instead if this parameter is not present.

No Included Containers

TcpIpTlsPskIdentity: TcpIpTlsPresharedKeyIdentityHint:
EcucParamConfContainerDef +parameter EcucStringParamDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = 1

TcpIpTlsPresharedKeyIdentity:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1 CsmKey:
EcucParamConfContainerDef

TcpIpTlsPresharedKeyCsmKeyRef: EcucReferenceDef lowerMultiplicity = 0


upperMultiplicity = *
+reference lowerMultiplicity = 0 +destination
CsmKeyId:
upperMultiplicity = 1
+parameter EcucIntegerParamDef
requiresSymbolicNameValue = true
symbolicNameValue = true
min = 0
max = 4294967295
TcpIpTlsPskGetClientKeyIdentityFunc: (from Csm)
+parameter EcucFunctionNameDef (from Csm)

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpTlsPskGetServerKeyIdentityFunc:
+parameter EcucFunctionNameDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpTlsPskGetKeyIdentityHintFunc:
+parameter EcucFunctionNameDef

lowerMultiplicity = 0
upperMultiplicity = 1

236 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpIpSecConfigSet:
EcucParamConfContainerDef +parameter TcpIpRemoteDeviceNum:
EcucIntegerParamDef
lowerMultiplicity = 0
min = 1
upperMultiplicity = *

TcpIpIpSecSpdCalloutFunction:
+parameter EcucFunctionNameDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpIpSecCalloutHeaderFile:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpIpSecAuditEventCalloutFunction:
+parameter EcucFunctionNameDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpSpdEntry:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

TcpIpIntegrityAlgorithm:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

TcpIpEncryptionAlgorithm:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = *

10.2.56 TcpIpIpSecConfigSet

SWS Item ECUC_TcpIp_00288 :


Container Name TcpIpIpSecConfigSet
Parent Container TcpIpConfig
Description Specifies the IPsec configuration.
Post-Build Variant
false
Multiplicity
Configuration Parameters

SWS Item ECUC_TcpIp_00292 :


Name TcpIpIpSecAuditEventCalloutFunction
Parent Container TcpIpIpSecConfigSet
Description This parameter specifies the name of a callout function that will be called
237 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

for each auditable event.


Multiplicity 0..1
Type EcucFunctionNameDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00291 :


Name TcpIpIpSecCalloutHeaderFile
Parent Container TcpIpIpSecConfigSet
Description This parameter specifies the name of the header file containing the
definition for the functions specified in TcpIpIpSecSpdCalloutFunction and
TcpIpIpSecAuditEvent
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00290 :


Name TcpIpIpSecSpdCalloutFunction
Parent Container TcpIpIpSecConfigSet
Description This parameter specifies the name of a callout function that shall be called
for each Rx/Tx messag, after the IPsec has processed all corresponding
SPD entries and has determined the policy. The callout function allows it to
override the applied policy.
Multiplicity 0..1
Type EcucFunctionNameDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
238 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-Build Variant Value false


Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00289 :


Name TcpIpRemoteDeviceNum
Parent Container TcpIpIpSecConfigSet
Description Amount of remote clients which will negotiate a Security Association (SA).
Multiplicity 1
Type EcucIntegerParamDef
Range 1 ..
18446744073709551615
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
Container for configuration of supported encryption algorithm
transforms. This container is used to configure supported
TcpIpEncryptionAlgorithm 0..*
algorithms for ESP. The transform algorithm must be
configured in the Crypto module.
Container for configuration of supported integrity algorithm
transforms. This container is used to configure supported
TcpIpIntegrityAlgorithm 1..*
algorithms for AH. The transform algorithm must be configured
in the Crypto module.
TcpIpSpdEntry 1..* Entry of the Security Policy Database (SPD).

239 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpEncryptionTransformJobPair: TcpIpCsmEncryptJobRef: CsmJob:


+reference +destination CsmJobId:
EcucParamConfContainerDef EcucReferenceDef EcucParamConfContainerDef
TcpIpEncryptionAlgorithm: +parameter EcucIntegerParamDef
EcucParamConfContainerDef +subContainer lowerMultiplicity = 1 requiresSymbolicNameValue = true lowerMultiplicity = 1
upperMultiplicity = * upperMultiplicity = * min = 0
lowerMultiplicity = 0 max = 4294967295
upperMultiplicity = * +reference TcpIpCsmDecryptJobRef: +destination symbolicNameValue = true
EcucReferenceDef
(from Csm)
requiresSymbolicNameValue = true
+parameter
(from Csm)
TcpIpEncryptionTransformIdentifier: +literal TCPIP_IPSEC_TRANSFORM_ENCR_DES_IV64: EcucEnumerationLiteralDef
EcucEnumerationParamDef

defaultValue = TCPIP_IPSEC_TRANSFORM_ENCR_DES
lowerMultiplicity = 1
upperMultiplicity = 1
+literal TCPIP_IPSEC_TRANSFORM_ENCR_DES: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_3DES: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_RC5: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_IDEA: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_CAST: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_BLOWFISH: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_3IDEA: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_DES_IV32: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_NULL: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_AES_CBC: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_AES_CTR: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_AES_CCM_8:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_AES_CCM_12:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_AES_CCM_16:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_AES_GCM_8:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_AES_GCM_12:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_AES_GCM_16:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_CAMELLIA_CBC:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_CAMELLIA_CTR:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_CAMELLIA_CCM_8:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_CAMELLIA_CCM_12:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_CAMELLIA_CCM_16:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_CHACHA20_POLY1305:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_AES_CCM_8_IIV:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_AES_GCM_16_IIV:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_ENCR_CHACHA20_POLY1305_II:
EcucEnumerationLiteralDef

240 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.57 TcpIpEncryptionAlgorithm

SWS Item ECUC_TcpIp_00317 :


Container Name TcpIpEncryptionAlgorithm
Parent Container TcpIpIpSecConfigSet
Container for configuration of supported encryption algorithm transforms.
Description This container is used to configure supported algorithms for ESP. The
transform algorithm must be configured in the Crypto module.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_TcpIp_00311 :


Name TcpIpEncryptionTransformIdentifier
Parent Container TcpIpEncryptionAlgorithm
Description Encryption algorithm transform identifier. Parameter values are defined as per IETF
RFC 7296 3.3.2
Multiplicity 1
Type EcucEnumerationParamDef
Range TCPIP_IPSEC_TRANSFORM_ENCR_- --
3DES
TCPIP_IPSEC_TRANSFORM_ENCR_- --
3IDEA
TCPIP_IPSEC_TRANSFORM_ENCR_- --
AES_CBC
TCPIP_IPSEC_TRANSFORM_ENCR_- --
AES_CCM_12
TCPIP_IPSEC_TRANSFORM_ENCR_- --
AES_CCM_16
TCPIP_IPSEC_TRANSFORM_ENCR_- --
AES_CCM_8
TCPIP_IPSEC_TRANSFORM_ENCR_- --
AES_CCM_8_IIV
TCPIP_IPSEC_TRANSFORM_ENCR_- --
AES_CTR
TCPIP_IPSEC_TRANSFORM_ENCR_- --
AES_GCM_12
TCPIP_IPSEC_TRANSFORM_ENCR_- --
AES_GCM_16
TCPIP_IPSEC_TRANSFORM_ENCR_- --
AES_GCM_16_IIV
TCPIP_IPSEC_TRANSFORM_ENCR_- --
AES_GCM_8
TCPIP_IPSEC_TRANSFORM_ENCR_- --
BLOWFISH
TCPIP_IPSEC_TRANSFORM_ENCR_- --
CAMELLIA_CBC
TCPIP_IPSEC_TRANSFORM_ENCR_- --
CAMELLIA_CCM_12
TCPIP_IPSEC_TRANSFORM_ENCR_- --
CAMELLIA_CCM_16
241 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

TCPIP_IPSEC_TRANSFORM_ENCR_- --
CAMELLIA_CCM_8
TCPIP_IPSEC_TRANSFORM_ENCR_- --
CAMELLIA_CTR
TCPIP_IPSEC_TRANSFORM_ENCR_- --
CAST
TCPIP_IPSEC_TRANSFORM_ENCR_- --
CHACHA20_POLY1305
TCPIP_IPSEC_TRANSFORM_ENCR_- --
CHACHA20_POLY1305_II
TCPIP_IPSEC_TRANSFORM_ENCR_- --
DES
TCPIP_IPSEC_TRANSFORM_ENCR_- --
DES_IV32
TCPIP_IPSEC_TRANSFORM_ENCR_- --
DES_IV64
TCPIP_IPSEC_TRANSFORM_ENCR_- --
IDEA
TCPIP_IPSEC_TRANSFORM_ENCR_- --
NULL
TCPIP_IPSEC_TRANSFORM_ENCR_- --
RC5
Default value TCPIP_IPSEC_TRANSFORM_ENCR_DES
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

Included Containers
Container Name Multiplicity Scope / Dependency
Container for storing the CSM integrity transform job
TcpIpEncryptionTransformJobPai references for performing authentication. Valid for ESP
1..*
r and AH.At least one Integrity transform job pair needs to
be configured for each Integrity Algorithm.

10.2.58 TcpIpEncryptionTransformJobPair

SWS Item ECUC_TcpIp_00312 :


Container Name TcpIpEncryptionTransformJobPair
Parent Container TcpIpEncryptionAlgorithm
Container for storing the CSM integrity transform job references for
Description performing authentication. Valid for ESP and AH.At least one Integrity
transform job pair needs to be configured for each Integrity Algorithm.
Post-Build Variant
false
Multiplicity
242 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Multiplicity Configuration Pre-compile time X All Variants


Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_TcpIp_00314 :


Name TcpIpCsmDecryptJobRef
Parent Container TcpIpEncryptionTransformJobPair
Description The referenced Csm job is used for the execution of the CsmMacVerify
primitive needed for this transform.
Must be a valid decryption job of the parent type.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00313 :


Name TcpIpCsmEncryptJobRef
Parent Container TcpIpEncryptionTransformJobPair
Description The referenced Csm job is used for the execution of the CsmMacGenerate
primitive needed for this transform.
Must be a valid encryption job of the parent type.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

243 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpIntegrityTransformIdentifier: EcucEnumerationParamDef
TcpIpIntegrityAlgorithm: +literal TCPIP_IPSEC_TRANSFORM_AUTH_HMAC_SHA2_256_128:
EcucParamConfContainerDef defaultValue = TCPIP_IPSEC_TRANSFORM_AUTH_HMAC_SHA2_256_128 EcucEnumerationLiteralDef
lowerMultiplicity = 1
lowerMultiplicity = 1
upperMultiplicity = 1
upperMultiplicity = *
+literal TCPIP_IPSEC_TRANSFORM_AUTH_HMAC_SHA2_384_192:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_AUTH_HMAC_SHA2_512_256:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_AUTH_HMAC_MD5_96:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_AUTH_AES_128_GMAC:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_AUTH_AES_192_GMAC:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_AUTH_AES_256_GMAC:
EcucEnumerationLiteralDef

+parameter

+literal TCPIP_IPSEC_TRANSFORM_AUTH_HMAC_SHA1_96:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_AUTH_DES_MAC: EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_AUTH_KPDK_MD5:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_AUTH_AES_XCBC_96:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_AUTH_HMAC_MD5_128:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_AUTH_HMAC_SHA1_160:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_TRANSFORM_AUTH_AES_CMAC_96:
EcucEnumerationLiteralDef

TcpIpIntegrityTransformJobPair: TcpIpCsmGenerateJobRef:
+reference +destination CsmJob:
EcucParamConfContainerDef EcucReferenceDef CsmJobId:
EcucParamConfContainerDef
+subContainer lowerMultiplicity = 1 +parameter EcucIntegerParamDef
requiresSymbolicNameValue = true lowerMultiplicity = 1
upperMultiplicity = * min = 0
upperMultiplicity = *
+reference max = 4294967295
TcpIpCsmVerifyJobRef: +destination symbolicNameValue = true
EcucReferenceDef
(from Csm)
requiresSymbolicNameValue = true

(from Csm)

10.2.59 TcpIpIntegrityAlgorithm

SWS Item ECUC_TcpIp_00294 :


Container Name TcpIpIntegrityAlgorithm
Parent Container TcpIpIpSecConfigSet
Container for configuration of supported integrity algorithm transforms.
Description This container is used to configure supported algorithms for AH. The
transform algorithm must be configured in the Crypto module.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_TcpIp_00307 :


Name TcpIpIntegrityTransformIdentifier
Parent Container TcpIpIntegrityAlgorithm
Description Integrity algorithm transform identifier. Parameter values are defined as per IETF RFC
7296 3.3.2
Multiplicity 1

244 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Type EcucEnumerationParamDef
Range TCPIP_IPSEC_TRANSFORM_AUTH_- --
AES_128_GMAC
TCPIP_IPSEC_TRANSFORM_AUTH_- --
AES_192_GMAC
TCPIP_IPSEC_TRANSFORM_AUTH_- --
AES_256_GMAC
TCPIP_IPSEC_TRANSFORM_AUTH_- --
AES_CMAC_96
TCPIP_IPSEC_TRANSFORM_AUTH_- --
AES_XCBC_96
TCPIP_IPSEC_TRANSFORM_AUTH_- --
DES_MAC
TCPIP_IPSEC_TRANSFORM_AUTH_- --
HMAC_MD5_128
TCPIP_IPSEC_TRANSFORM_AUTH_- --
HMAC_MD5_96
TCPIP_IPSEC_TRANSFORM_AUTH_- --
HMAC_SHA1_160
TCPIP_IPSEC_TRANSFORM_AUTH_- --
HMAC_SHA1_96
TCPIP_IPSEC_TRANSFORM_AUTH_- --
HMAC_SHA2_256_128
TCPIP_IPSEC_TRANSFORM_AUTH_- --
HMAC_SHA2_384_192
TCPIP_IPSEC_TRANSFORM_AUTH_- --
HMAC_SHA2_512_256
TCPIP_IPSEC_TRANSFORM_AUTH_- --
KPDK_MD5
Default value TCPIP_IPSEC_TRANSFORM_AUTH_HMAC_SHA2_256_128
Post-Build
Variant false
Multiplicity
Post-Build
false
Variant Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

Included Containers
Container Name Multiplicity Scope / Dependency
Container for storing the CSM integrity transform job
TcpIpIntegrityTransformJobPai references for performing authentication. Valid for ESP and
1..*
r AH.At least one Integrity transform job pair needs to be
configured for each Integrity Algorithm.

10.2.60 TcpIpIntegrityTransformJobPair

SWS Item ECUC_TcpIp_00308 :


245 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Container Name TcpIpIntegrityTransformJobPair


Parent Container TcpIpIntegrityAlgorithm
Container for storing the CSM integrity transform job references for
Description performing authentication. Valid for ESP and AH.At least one Integrity
transform job pair needs to be configured for each Integrity Algorithm.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_TcpIp_00309 :


Name TcpIpCsmGenerateJobRef
Parent Container TcpIpIntegrityTransformJobPair
Description The referenced Csm job is used for the execution of the CsmMacGenerate
primitive needed for this transform.
Must be a valid MAC generate job of the parent type.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00310 :


Name TcpIpCsmVerifyJobRef
Parent Container TcpIpIntegrityTransformJobPair
Description The referenced Csm job is used for the execution of the CsmMacVerify
primitive needed for this transform.
Must be a valid MAC verify job of the parent type.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

246 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpIpSecPolicy: +literal TCPIP_IPSEC_POLICY_PROTECT:


TcpIpSpdEntry: EcucEnumerationParamDef EcucEnumerationLiteralDef
EcucParamConfContainerDef
lowerMultiplicity = 1
lowerMultiplicity = 1 upperMultiplicity = 1
upperMultiplicity = *
+literal TCPIP_IPSEC_POLICY_OPTIONAL:
EcucEnumerationLiteralDef

+parameter

+literal TCPIP_IPSEC_POLICY_BYPASS:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_POLICY_DISCARD:
EcucEnumerationLiteralDef

TcpIpIpSecPriority:
EcucIntegerParamDef
+parameter
min = 0
defaultValue = 0
lowerMultiplicity = 1
upperMultiplicity = 1

TcpIpIpSecHeaderType: +literal TCPIP_IPSEC_HDR_AH:


EcucEnumerationParamDef EcucEnumerationLiteralDef
defaultValue = TCPIP_IPSEC_HDR_AH
lowerMultiplicity = 1
upperMultiplicity = 1
+parameter +literal TCPIP_IPSEC_HDR_ESP:
EcucEnumerationLiteralDef

+literal TCPIP_IPSEC_HDR_NONE:
EcucEnumerationLiteralDef

TcpIpLocalPortRangeStart:
EcucIntegerParamDef
+parameter
min = 1
max = 65535 TcpIpLocalPortRangeEnd:
lowerMultiplicity = 0 EcucIntegerParamDef
upperMultiplicity = 1
min = 1
+parameter
max = 65535
lowerMultiplicity = 0
upperMultiplicity = 1
TcpIpLocalIpAddrStart:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1 TcpIpLocalIpAddrEnd:
+parameter EcucStringParamDef

lowerMultiplicity = 0
TcpIpRemIpAddrStart: upperMultiplicity = 1
+parameter EcucStringParamDef

lowerMultiplicity = 0
TcpIpRemIpAddrEnd:
upperMultiplicity = 1 EcucStringParamDef
+parameter
lowerMultiplicity = 0
upperMultiplicity = 1
TcpIpRemPortRangeStart:
EcucIntegerParamDef
+parameter
min = 1
max = 65535
lowerMultiplicity = 0 TcpIpRemPortRangeEnd:
upperMultiplicity = 1 EcucIntegerParamDef
+parameter min = 1
max = 65535
lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpProtocol: EcucEnumerationParamDef +literal TCPIP_PROTOCOL_ICMP:


EcucEnumerationLiteralDef
lowerMultiplicity = 1
upperMultiplicity = 1

+literal TCPIP_PROTOCOL_TCP:
EcucEnumerationLiteralDef
+parameter

+literal TCPIP_PROTOCOL_UDP:
EcucEnumerationLiteralDef

+literal TCPIP_PROTOCOL_ANY:
EcucEnumerationLiteralDef

247 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.61 TcpIpSpdEntry

SWS Item ECUC_TcpIp_00293 :


Container Name TcpIpSpdEntry
Parent Container TcpIpIpSecConfigSet
Description Entry of the Security Policy Database (SPD).
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_TcpIp_00297 :


Name TcpIpIpSecHeaderType
Parent Container TcpIpSpdEntry
Description Header type specifying the IPsec security mechanism.
Multiplicity 1
Type EcucEnumerationParamDef
Range TCPIP_IPSEC_HDR_AH --
TCPIP_IPSEC_HDR_ESP --
TCPIP_IPSEC_HDR_NONE --
Default value TCPIP_IPSEC_HDR_AH
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_TcpIp_00295 :


Name TcpIpIpSecPolicy
Parent Container TcpIpSpdEntry
Description Policy for usage of IPsec.
Multiplicity 1
Type EcucEnumerationParamDef
Range TCPIP_IPSEC_POLICY_BYPASS --
TCPIP_IPSEC_POLICY_DISCARD --
TCPIP_IPSEC_POLICY_OPTIONAL --
TCPIP_IPSEC_POLICY_PROTECT --
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
248 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Value Pre-compile time X All Variants


Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_TcpIp_00296 :


Name TcpIpIpSecPriority
Parent Container TcpIpSpdEntry
Description Priority of the SPD entry. The processing of entries is based on priority,
starting with the highest priority "0". The first matching SPD entry defines
the policy.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 ..
18446744073709551615
Default value 0
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00301 :


Name TcpIpLocalIpAddrEnd
Parent Container TcpIpSpdEntry
Description End value of the remote IP address range.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00300 :


Name TcpIpLocalIpAddrStart
Parent Container TcpIpSpdEntry
Description Start value of the local IP address range.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
249 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Multiplicity ConfigurationPre-compile time X All Variants


Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00299 :


Name TcpIpLocalPortRangeEnd
Parent Container TcpIpSpdEntry
Description End value of the local port range.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 1 .. 65535
Default value --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00298 :


Name TcpIpLocalPortRangeStart
Parent Container TcpIpSpdEntry
Description Start value of the local port range.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 1 .. 65535
Default value --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00306 :


Name TcpIpProtocol
Parent Container TcpIpSpdEntry
Description Relevant IP protocol.
Note: As specified in IETF Rfc 4301 section 6, ICMP error messages will always be
BYPASSed. The policy for TCPIP_PROTOCOL_ICMP only applies to ICMP non-
error messages. (Echo reply/response).
Multiplicity 1
Type EcucEnumerationParamDef
Range TCPIP_PROTOCOL_ANY --
250 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

TCPIP_PROTOCOL_ICMP --
TCPIP_PROTOCOL_TCP --
TCPIP_PROTOCOL_UDP --
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_TcpIp_00303 :


Name TcpIpRemIpAddrEnd
Parent Container TcpIpSpdEntry
Description End value of the remote IP address range.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00302 :


Name TcpIpRemIpAddrStart
Parent Container TcpIpSpdEntry
Description Start value of the remote IP address range.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
251 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00305 :


Name TcpIpRemPortRangeEnd
Parent Container TcpIpSpdEntry
Description End value of the remote port range.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 1 .. 65535
Default value --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_TcpIp_00304 :


Name TcpIpRemPortRangeStart
Parent Container TcpIpSpdEntry
Description Start value of the remote port range.
Multiplicity 0..1
Type EcucIntegerParamDef
Range 1 .. 65535
Default value --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

252 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

IKE: EcucModuleDef +container IKEGeneral:


EcucParamConfContainerDef
upperMultiplicity = 1
lowerMultiplicity = 0

+container IKEConnections:
EcucParamConfContainerDef

+container IKETransforms:
EcucParamConfContainerDef

+container IKECertificates:
EcucParamConfContainerDef

10.2.62 IKE

SWS Item ECUC_IKE_00001 :


Module Name IKE
Module Description Description for the Internet Key Exchange.
Post-Build Variant Support false
Supported Config Variants VARIANT-PRE-COMPILE

Included Containers
Container Name Multiplicity Scope / Dependency
IKECertificates 1 Container for configuration of IKE certificates.
IKEConnections 1 Container for configuration of IKE connections.
IKEGeneral 1 General module settings.
IKETransforms 1 Container for configuration of IKE transforms.

253 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

IKEGeneral: IKEVersionInfoApi:
+parameter
EcucParamConfContainerDef EcucBooleanParamDef

defaultValue = false

+reference IKEHashJobRef: EcucReferenceDef +destination CsmJob:


EcucParamConfContainerDef
requiresSymbolicNameValue = true CsmJobId:
lowerMultiplicity = 1 +parameter EcucIntegerParamDef
upperMultiplicity = *
min = 0
max = 4294967295
+reference IKERandomJobRef: EcucReferenceDef +destination
symbolicNameValue = true
requiresSymbolicNameValue = true
(from Csm)

(from Csm)
TcpIpSocketOwnerId:
TcpIpSocketOwner: EcucIntegerParamDef
+reference IKETcpIpSocketOwner: +destination EcucParamConfContainerDef +parameter
EcucReferenceDef min = 0
lowerMultiplicity = 1 max = 65535
requiresSymbolicNameValue = true defaultValue = 0
upperMultiplicity = *
symbolicNameValue = true
(from TcpIp)
(from TcpIp)

+subContainer

IKEMessageFormat: IKEMaxTransformsPerProp:
EcucParamConfContainerDef +parameter EcucIntegerParamDef

min = 1
max = 5
defaultValue = 5
IKEMaxAttributesPerTransform:
+parameter EcucIntegerParamDef

min = 1
max = 2
IKEMaxProposalsPerSaPayload:
defaultValue = 2
+parameter EcucIntegerParamDef

min = 1
max = 5
defaultValue = 5 IKEMaxTrafficSelectorsPerTsPayload:
EcucIntegerParamDef
+parameter
min = 1
max = 2
IKEMaxSpisPerDeletePayload: defaultValue = 2

+parameter EcucIntegerParamDef

min = 1
max = 2 IKEMaxPayloadsPerMessage:
defaultValue = 2 EcucIntegerParamDef
+parameter min = 1
max = 20
defaultValue = 20
IKEMaxNotifyPayloadsPerMessage:
+parameter EcucIntegerParamDef

min = 1
max = 10 IKEMaxCertPayloadsPerMessage:
defaultValue = 10 EcucIntegerParamDef

+parameter min = 1
max = 4
defaultValue = 4
IKEMaxCertreqPayloadsPerMessage:
+parameter EcucIntegerParamDef

min = 1
max = 4
IKEMaxDeletePayloadsPerMessage:
defaultValue = 4
EcucIntegerParamDef

+parameter min = 1
max = 2
defaultValue = 2
IKEMaxNonceSize:
+parameter EcucIntegerParamDef

min = 32
max = 512
defaultValue = 64
IKEMaxInitMessageSize:
+parameter EcucIntegerParamDef

min = 256
max = 3000
defaultValue = 512

10.2.63 IKEGeneral

SWS Item ECUC_IKE_00002 :


Container Name IKEGeneral
Parent Container IKE
Description General module settings.
254 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Configuration Parameters

SWS Item ECUC_IKE_00008 :


Name IKEVersionInfoApi
Parent Container IKEGeneral
Description Pre-processor switch to enable and disable availability of the API
IKE_GetVersionInfo().

 True: API IKE_GetVersionInfo() is available.


 False: API IKE_GetVersionInfo() is not available.

Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00009 :


Name IKEHashJobRef
Parent Container IKEGeneral
Description The referenced crypto job is used to calculate the SHA-1 hash of the
Subject Public Key Info element needed for the encoding of the
certification authorities.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Scope / Dependency scope: local

SWS Item ECUC_IKE_00010 :


Name IKERandomJobRef
Parent Container IKEGeneral
Description The referenced crypto job is used for random number generation.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00011 :


Name IKETcpIpSocketOwner
Parent Container IKEGeneral
Description The ID of the socket user.
255 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Multiplicity 1
Type Symbolic name reference to [ TcpIpSocketOwner ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
In order to deserialize the byte stream of IKE messages to
data structures memory is statically allocated. Use the
IKEMessageFormat 1 parameters in this container to minimize the used memory.
But, configuring too low maximum values might result in
unsuccessful deserializations of received IKE messages.

10.2.64 IKEMessageFormat

SWS Item ECUC_IKE_00012 :


Container Name IKEMessageFormat
Parent Container IKEGeneral
In order to deserialize the byte stream of IKE messages to data structures
memory is statically allocated. Use the parameters in this container to
Description
minimize the used memory. But, configuring too low maximum values
might result in unsuccessful deserializations of received IKE messages.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_IKE_00014 :


Name IKEMaxAttributesPerTransform
Parent Container IKEMessageFormat
Description The maximum number of attributes a transform may contain.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 2
Default value 2
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
256 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00020 :


Name IKEMaxCertPayloadsPerMessage
Parent Container IKEMessageFormat
Description The maximum number of Certificate payloads an IKE message may
contain.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 4
Default value 4
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00021 :


Name IKEMaxCertreqPayloadsPerMessage
Parent Container IKEMessageFormat
Description The maximum number of Certificate Request payloads an IKE message
may contain.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 4
Default value 4
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00022 :


Name IKEMaxDeletePayloadsPerMessage
Parent Container IKEMessageFormat
Description The maximum number of Delete payloads an IKE message may contain.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 2
Default value 2
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
257 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00024 :


Name IKEMaxInitMessageSize
Parent Container IKEMessageFormat
Description The maximum size of incoming IKE_INIT messages.
Multiplicity 1
Type EcucIntegerParamDef
Range 256 .. 3000
Default value 512
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00023 :


Name IKEMaxNonceSize
Parent Container IKEMessageFormat
Description The maximum size of incoming nonces.
Must be be at least 32 bytes and at least half the key size of the largest
configured pseudorandom function (PRF).
Multiplicity 1
Type EcucIntegerParamDef
Range 32 .. 512
Default value 64
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00019 :


Name IKEMaxNotifyPayloadsPerMessage
Parent Container IKEMessageFormat
Description The maximum number of Notify payloads an IKE message may contain.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 10
Default value 10
Post-Build Variant
false
Multiplicity
258 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-Build Variant Value false


Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00018 :


Name IKEMaxPayloadsPerMessage
Parent Container IKEMessageFormat
Description The maximum number of payloads an IKE message may contain.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 20
Default value 20
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00015 :


Name IKEMaxProposalsPerSaPayload
Parent Container IKEMessageFormat
Description The maximum number of proposals a SA payload may contain.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 5
Default value 5
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00017 :


Name IKEMaxSpisPerDeletePayload
Parent Container IKEMessageFormat
Description The maximum number of SPIs a Delete payload may contain.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 2
Default value 2
Post-Build Variant false
259 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00016 :


Name IKEMaxTrafficSelectorsPerTsPayload
Parent Container IKEMessageFormat
Description The maximum number of traffic selectors a Traffic Selector payload may
contain.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 2
Default value 2
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00013 :


Name IKEMaxTransformsPerProp
Parent Container IKEMessageFormat
Description The maximum number of transforms a proposal may contain.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 5
Default value 5
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

260 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

IKEConnections:
EcucParamConfContainerDef IKEMaxNumFragments:
+parameter EcucIntegerParamDef
min = 1
max = 10
defaultValue = 3 IKEFragmentSize:
+parameter EcucIntegerParamDef

min = 576
max = 4096
IKERetransmitTries: defaultValue = 1280
+parameter EcucIntegerParamDef

min = 0
max = 255
defaultValue = 10 IKELocalPort:
EcucIntegerParamDef

+parameter min = 0
max = 65535
defaultValue = 500

IKERetransmitBase:
+parameter EcucFloatParamDef

min = 1
max = 2
defaultValue = 1.3 IKERetransmitTimeout:
+parameter EcucFloatParamDef

min = 1
max = 60
defaultValue = 1.5
IKEReassemblingTimeout:
+parameter EcucFloatParamDef

min = 0.1
max = 60
defaultValue = 0.5 IKEConnectionTimeout:
+parameter EcucFloatParamDef

min = 1
max = 60
defaultValue = 30

IKEConnection:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

10.2.65 IKEConnections

SWS Item ECUC_IKE_00003 :


Container Name IKEConnections
Parent Container IKE
Description Container for configuration of IKE connections.
Configuration Parameters

SWS Item ECUC_IKE_00055 :


Name IKEConnectionTimeout
Parent Container IKEConnections
261 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description Timeout for etsablishing a connection in order to handle a "half open"


state.
Multiplicity 1
Type EcucFloatParamDef
Range [1 .. 60]
Default value 30
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00049 :


Name IKEFragmentSize
Parent Container IKEConnections
Description The maximum size of IKE fragment messages when fragmentation is
used.
The resulting buffer size for subsequent fragment messages is (Number of
Fragments * Fragment Size). This fragment size is the maximum IP
datagram size, used for both RX and TX.
Multiplicity 1
Type EcucIntegerParamDef
Range 576 .. 4096
Default value 1280
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00051 :


Name IKELocalPort
Parent Container IKEConnections
Description The local port is the UDP port to listen to.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value 500
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
262 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00048 :


Name IKEMaxNumFragments
Parent Container IKEConnections
Description The maximum number of fragment messages into which the an IKE
message might be divided. If this value is set to 1, fragmentation is not
supported.
The resulting buffer size for subsequent fragment messages is (Number of
Fragments * Fragment Size). Used for both RX and TX and affects size of
TX buffer.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 10
Default value 3
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00054 :


Name IKEReassemblingTimeout
Parent Container IKEConnections
Description The timeout for reassembling a fragmented message. All fragments of a
message must be received within this interval, Otherwise all so far
received fragments are discarded.
Multiplicity 1
Type EcucFloatParamDef
Range [0.1 .. 60]
Default value 0.5
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00052 :


Name IKERetransmitBase
Parent Container IKEConnections
Description The base used for calculation of the exponantioal back-off of the retransmit
timeouts.
Multiplicity 1
Type EcucFloatParamDef
Range [1 .. 2]

263 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Default value 1.3


Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00053 :


Name IKERetransmitTimeout
Parent Container IKEConnections
Description The initial retransmit timeout.
Multiplicity 1
Type EcucFloatParamDef
Range [1 .. 60]
Default value 1.5
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00050 :


Name IKERetransmitTries
Parent Container IKEConnections
Description The maximum number of retransmits of a request before giving up.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 255
Default value 10
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
IKEConnection 1..* Container for configuration of IKE connection.

264 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

IKEConnection: IKERemotePort:
EcucParamConfContainerDef
+parameter EcucIntegerParamDef
lowerMultiplicity = 1 min = 0
upperMultiplicity = * max = 65535
defaultValue = 500

+parameter IKEAutostart:
EcucBooleanParamDef

+parameter IKERemoteAddress: defaultValue = true


EcucStringParamDef

IKEConnectionId:
+parameter EcucIntegerParamDef

min = 0
max = 4294967295
IKEDpdDelay: defaultValue = 0
+parameter EcucFloatParamDef

min = 0
max = 1000000000
defaultValue = 30 IKEIkeLifetime:
+parameter EcucFloatParamDef

min = 0
max = 1000000000
IKEIkeMarginTime: defaultValue = 86400
+parameter EcucFloatParamDef

min = 10
max = 1000000000
defaultValue = 600

TcpIpLocalAddr: TcpIpAddrId: EcucIntegerParamDef


+reference IKETcpIpLocalAddressRef: +destination EcucParamConfContainerDef +parameter
EcucReferenceDef min = 0
lowerMultiplicity = 1 max = 65535
requiresSymbolicNameValue = true upperMultiplicity = * symbolicNameValue = true

IKEECUCertificateRef: (from TcpIp)


+reference (from TcpIp)
EcucReferenceDef
+destination IKECertificate:
lowerMultiplicity = 0
upperMultiplicity = 1 EcucParamConfContainerDef

lowerMultiplicity = 2
IKETrustAnchorCertificateRef: +destination upperMultiplicity = 65534
+reference EcucReferenceDef

lowerMultiplicity = 0
upperMultiplicity = 1

IKESession: IKEChildSaProposal:
EcucParamConfContainerDef +subContainer EcucParamConfContainerDef

lowerMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = 255 upperMultiplicity = 65536

IKEIkeSaProposal:
+subContainer +subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

IKESignatureAuthenticationVariant:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

IKEECUPreSharedKeyRef: CsmKey:
+reference EcucReferenceDef CsmKeyId:
+destination EcucParamConfContainerDef
+parameter EcucIntegerParamDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = * symbolicNameValue = true
requiresSymbolicNameValue = true min = 0
max = 4294967295

IKERemotePreSharedKeyRef: (from Csm)


+reference EcucReferenceDef +destination
lowerMultiplicity = 0
upperMultiplicity = 1
requiresSymbolicNameValue = true
(from Csm)

10.2.66 IKEConnection

SWS Item ECUC_IKE_00056 :


Container Name IKEConnection
Parent Container IKEConnections
Description Container for configuration of IKE connection.
Post-Build Variant
false
Multiplicity

265 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Multiplicity Configuration Pre-compile time X All Variants


Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_IKE_00058 :


Name IKEAutostart
Parent Container IKEConnection
Description If enabled, IKE wil automatically initiate an IKE SA on this connection after
start-up of the module.
Multiplicity 1
Type EcucBooleanParamDef
Default value true
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00060 :


Name IKEConnectionId
Parent Container IKEConnection
Description Identifier of the connection.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 4294967295
Default value 0
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00063 :


Name IKEDpdDelay
Parent Container IKEConnection
Description Specifies the interval in which Dead Peer Detection (DPD) packets shall be
sent in the absence of other traffic
Set to 0 to disable sending DPD packets.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 1000000000]
Default value 30
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
266 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Multiplicity ConfigurationPre-compile time X All Variants


Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00064 :


Name IKEIkeLifetime
Parent Container IKEConnection
Description Specifies the time after which an IKE SA is terminated.
Set to 0 if IKE SA never expires.
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. 1000000000]
Default value 86400
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00065 :


Name IKEIkeMarginTime
Parent Container IKEConnection
Description Specifies how many seconds before expiry an IKE SA should be
renegotiated.
Multiplicity 1
Type EcucFloatParamDef
Range [10 .. 1000000000]
Default value 600
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00059 :


Name IKERemoteAddress
Parent Container IKEConnection
Description The remote address is the IP address of the ECU which a IKE connection
shall be established with, e.g. 192.168.50.101.
Multiplicity 1
Type EcucStringParamDef
Default value --
267 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00057 :


Name IKERemotePort
Parent Container IKEConnection
Description The remote port is the UDP port of the ECU which a IKE connection shall
be established with.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value 500
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00067 :


Name IKEECUCertificateRef
Parent Container IKEConnection
Description The ECU certificate is the end-entity certificate.
The referenced certificate is the ECU certificate which cortains the public
key used for authentication during the IKE connection setup.
Multiplicity 0..1
Type Reference to [ IKECertificate ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00088 :


Name IKEECUPreSharedKeyRef
Parent Container IKEConnection
268 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description The ECU's pre-shared key.


Multiplicity 0..1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00089 :


Name IKERemotePreSharedKeyRef
Parent Container IKEConnection
Description The referenced key is the key which is used to identify the remote ECU
during the IKE connection setup.
Multiplicity 0..1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00066 :


Name IKETcpIpLocalAddressRef
Parent Container IKEConnection
Description IP address table identifier assigned by TCP/IP stack.
Multiplicity 1
Type Symbolic name reference to [ TcpIpLocalAddr ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00068 :


Name IKETrustAnchorCertificateRef
Parent Container IKEConnection
Description The referenced certificate is the Trust Anchor certificate which is used to
identify the trusted Certification Authorities during the IKE connection
setup.
Multiplicity 0..1
269 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Type Reference to [ IKECertificate ]


Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
IKESession 1..255 Container for configuration of IKE session.

10.2.67 IKESession

SWS Item ECUC_IKE_00069 :


Container Name IKESession
Parent Container IKEConnection
Description Container for configuration of IKE session.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

Included Containers
Container Name Multiplicity Scope / Dependency
Container for configuration of IKE Authentication Header
IKEChildSaProposal 1..65536 (AH) or Encapsulating Security Payload (ESP) Security
Association Proposals.
Container for configuration of IKE IKE Security
IKEIkeSaProposal 1..*
Association Proposal.
IKESignatureAuthenticationVarian Defining variants for the IKEv2 Authentication Method
1..*
t "Digitial Signature".

270 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

IKEChildSaProposal:
EcucParamConfContainerDef IKESecurityProtocol:
+literal IKE_PROTOCOL_AH:
EcucEnumerationParamDef
EcucEnumerationLiteralDef
lowerMultiplicity = 1
+parameter defaultValue = IKE_PROTOCOL_AH
upperMultiplicity = 65536

+literal IKE_PROTOCOL_ESP:
EcucEnumerationLiteralDef

+parameter IKEUseExtendedSequenceNumbers:
EcucBooleanParamDef

defaultValue = true

TcpIpIntegrityAlgorithm:
+reference IKEIntegTransformRef: +destination EcucParamConfContainerDef
EcucReferenceDef
lowerMultiplicity = 1
upperMultiplicity = *

(from TcpIpIpSec)

IKEEncrTransformRef: TcpIpEncryptionAlgorithm:
+reference +destination
EcucReferenceDef EcucParamConfContainerDef

lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *

(from TcpIpIpSec)

10.2.68 IKEChildSaProposal

SWS Item ECUC_IKE_00070 :


Container Name IKEChildSaProposal
Parent Container IKESession
Container for configuration of IKE Authentication Header (AH) or
Description
Encapsulating Security Payload (ESP) Security Association Proposals.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_IKE_00074 :


Name IKESecurityProtocol
Parent Container IKEChildSaProposal
Description The security protocol (i.e., AH or ESP) to be used for this Child SA.
Multiplicity 1
Type EcucEnumerationParamDef
Range IKE_PROTOCOL_AH --
IKE_PROTOCOL_ESP --
Default value IKE_PROTOCOL_AH
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
271 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Class Post-build time --


Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_IKE_00075 :


Name IKEUseExtendedSequenceNumbers
Parent Container IKEChildSaProposal
Description Whether this Child SA should use Extended Sequence Numbers (ESN),
i.e., 64-Bit instead of 32-Bit sequence numbers.
Multiplicity 1
Type EcucBooleanParamDef
Default value true
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00077 :


Name IKEEncrTransformRef
Parent Container IKEChildSaProposal
Description The referenced Encryption Algorithm is added to this proposal.
Leave empty for AH and ESP in authentication-only mode.
Multiplicity 0..1
Type Reference to [ TcpIpEncryptionAlgorithm ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00076 :


Name IKEIntegTransformRef
Parent Container IKEChildSaProposal
Description The referenced Integrity Algorithm is added to this proposal.
Multiplicity 1
Type Reference to [ TcpIpIntegrityAlgorithm ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
272 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Value Configuration Class Pre-compile time X All Variants


Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

IKEEncrTransform:
IKEIkeSaProposal:
+reference IKEEncrTransformRef: +destination EcucParamConfContainerDef
EcucParamConfContainerDef
EcucReferenceDef
lowerMultiplicity = 1
lowerMultiplicity = 1 upperMultiplicity = *
upperMultiplicity = *

IKEPrfTransform:
+reference IKEPrfTransformRef: +destination EcucParamConfContainerDef
EcucReferenceDef
lowerMultiplicity = 1
upperMultiplicity = *

IKEIntegTransform:
+reference IKEIntegTransformRef: +destination EcucParamConfContainerDef
EcucReferenceDef
lowerMultiplicity = 1
upperMultiplicity = *

IKEDhTransform:
+reference IKEDhTransformRef: +destination EcucParamConfContainerDef
EcucReferenceDef
lowerMultiplicity = 1
upperMultiplicity = *

10.2.69 IKEIkeSaProposal

SWS Item ECUC_IKE_00071 :


Container Name IKEIkeSaProposal
Parent Container IKESession
Description Container for configuration of IKE IKE Security Association Proposal.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_IKE_00082 :


Name IKEDhTransformRef
Parent Container IKEIkeSaProposal
Description The referenced Diffie-Hellman Group Transform is added to this proposal.
Multiplicity 1
Type Reference to [ IKEDhTransform ]
Post-Build Variant
false
Multiplicity

273 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Post-Build Variant Value false


Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00079 :


Name IKEEncrTransformRef
Parent Container IKEIkeSaProposal
Description The referenced Encryption Algorithm Transform is added to this proposal.
Multiplicity 1
Type Reference to [ IKEEncrTransform ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00081 :


Name IKEIntegTransformRef
Parent Container IKEIkeSaProposal
Description The referenced Integrity Algorithm Transform is added to this proposal.
Multiplicity 1
Type Reference to [ IKEIntegTransform ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00080 :


Name IKEPrfTransformRef
Parent Container IKEIkeSaProposal
Description The referenced Pseudorandom Function Transform is added to this
proposal.
Multiplicity 1
Type Reference to [ IKEPrfTransform ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
274 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Value Configuration Class Pre-compile time X All Variants


Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

IKESignatureAuthenticationVariant: +literal IKE_SIGNATURE_RSA_ENCRYPTION:


IKESignatureAlgorithm:
EcucParamConfContainerDef EcucEnumerationLiteralDef
EcucEnumerationParamDef
lowerMultiplicity = 1
defaultValue = IKE_SIGNATURE_ECDSA
upperMultiplicity = *

+literal IKE_SIGNATURE_DSA:
EcucEnumerationLiteralDef
+parameter

+literal IKE_SIGNATURE_ECDSA:
EcucEnumerationLiteralDef

+literal IKE_SIGNATURE_RSASSA_PSS:
EcucEnumerationLiteralDef

IKEHashAlgorithm: +literal IKE_HASH_ALGO_SHA1:


EcucEnumerationParamDef EcucEnumerationLiteralDef

defaultValue = IKE_HASH_ALGO_SHA1
lowerMultiplicity = 1
upperMultiplicity = 1 +literal IKE_HASH_ALGO_SHA2_512:
EcucEnumerationLiteralDef
+parameter

+literal IKE_HASH_ALGO_SHA2_384:
EcucEnumerationLiteralDef

+literal
IKE_HASH_ALGO_SHA2_256:
EcucEnumerationLiteralDef

IKESignatureLength:
+parameter EcucIntegerParamDef
min = 64
max = 1024
defaultValue = 96

IKESignatureGenerateJobRef: CsmJob:
+reference +destination
EcucReferenceDef EcucParamConfContainerDef CsmJobId:
+parameter EcucIntegerParamDef
requiresSymbolicNameValue = true lowerMultiplicity = 1
upperMultiplicity = * min = 0
max = 4294967295
IKESignatureVerifyJobRef: +destination symbolicNameValue = true
+reference
EcucReferenceDef
(from Csm)
requiresSymbolicNameValue = true
(from Csm)

10.2.70 IKESignatureAuthenticationVariant

SWS Item ECUC_IKE_00072 :


Container Name IKESignatureAuthenticationVariant
Parent Container IKESession
Description Defining variants for the IKEv2 Authentication Method "Digitial Signature".
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters
275 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_IKE_00084 :


Name IKEHashAlgorithm
Parent Container IKESignatureAuthenticationVariant
Description Pre-hashing Algorithm.
Please adapt to the referenced Csm jobs.
Multiplicity 1
Type EcucEnumerationParamDef
Range IKE_HASH_ALGO_SHA1 --
IKE_HASH_ALGO_SHA2_256 --
IKE_HASH_ALGO_SHA2_384 --
IKE_HASH_ALGO_SHA2_512 --
Default value IKE_HASH_ALGO_SHA1
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_IKE_00083 :


Name IKESignatureAlgorithm
Parent Container IKESignatureAuthenticationVariant
Description Signature Algorithm.
Please adapt to the referenced Csm jobs.
Multiplicity 1
Type EcucEnumerationParamDef
Range IKE_SIGNATURE_DSA --
IKE_SIGNATURE_ECDSA --
IKE_SIGNATURE_RSASSA_PSS --
IKE_SIGNATURE_RSA_ENCRYPTION --
Default value IKE_SIGNATURE_ECDSA
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_IKE_00085 :


Name IKESignatureLength
Parent Container IKESignatureAuthenticationVariant
Description The length of a signature generated by the configured generation job and
verified by the configured verification job.

276 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

E.g. 64 for ECDSA-256 or 96 for ECDSA-386.


Multiplicity 1
Type EcucIntegerParamDef
Range 64 .. 1024
Default value 96
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00086 :


Name IKESignatureGenerateJobRef
Parent Container IKESignatureAuthenticationVariant
Description The referenced Csm job is used for the execution of the
CsmSignatureGenerate primitive needed for this transform.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00087 :


Name IKESignatureVerifyJobRef
Parent Container IKESignatureAuthenticationVariant
Description The referenced Csm job is used for the execution of the
CsmSignatureVerify primitive needed for this transform.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

277 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

IKETransforms: IKEEncrTransform:
EcucParamConfContainerDef +subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

IKEPrfTransform:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

IKEIntegTransform:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

IKEDhTransform:
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = *

10.2.71 IKETransforms

SWS Item ECUC_IKE_00004 :


Container Name IKETransforms
Parent Container IKE
Description Container for configuration of IKE transforms.
Configuration Parameters

Included Containers
Container Name Multiplicity Scope / Dependency
IKEDhTransform 1..* Container for configuration of Diffie-Hellman Group Transform.
IKEEncrTransform 1..* Container for configuration of Encryption Algorithm Transform.
IKEIntegTransform 1..* Container for configuration of Integrity Algorithm Transform.
Container for configuration of Pseudorandom Function
IKEPrfTransform 1..*
Transform.

278 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

IKEDhTransform: CsmKeyId:
IKEKeyRef: EcucReferenceDef CsmKey:
EcucParamConfContainerDef +reference +destination EcucParamConfContainerDef EcucIntegerParamDef
+parameter
lowerMultiplicity = 1 requiresSymbolicNameValue = true
lowerMultiplicity = 0 symbolicNameValue = true
upperMultiplicity = * min = 0
upperMultiplicity = *
max = 4294967295
(from Csm)
(from Csm)

+parameter

IKETransformId: EcucEnumerationParamDef +literal IKE_TRANSFORM_DH_768_BIT_MODP_GROUP:


EcucEnumerationLiteralDef
defaultValue = IKE_TRANSFORM_DH_256_BIT_RANDOM_ECP_GROUP

+literal IKE_TRANSFORM_DH_1024_BIT_MODP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_1536_BIT_MODP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_2048_BIT_MODP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_3072_BIT_MODP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_4096_BIT_MODP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_6144_BIT_MODP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_8192_BIT_MODP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_256_BIT_RANDOM_ECP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_384_BIT_RANDOM_ECP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_521_BIT_RANDOM_ECP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_1024_BIT_MODP_GROUP_WITH_160_BIT_PRIME_ORDER_SUBGROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_2048_BIT_MODP_GROUP_WITH_224_BIT_PRIME_ORDER_SUBGROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_2048_BIT_MODP_GROUP_WITH_256_BIT_PRIME_ORDER_SUBGROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_192_BIT_RANDOM_ECP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_224_BIT_RANDOM_ECP_GROUP:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_BRAINPOOLP224R1:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_BRAINPOOLP256R1:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_BRAINPOOLP384R1:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_BRAINPOOLP512R1:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_CURVE25519:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_DH_CURVE448:
EcucEnumerationLiteralDef

279 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.72 IKEDhTransform

SWS Item ECUC_IKE_00028 :


Container Name IKEDhTransform
Parent Container IKETransforms
Description Container for configuration of Diffie-Hellman Group Transform.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_IKE_00038 :


Name IKETransformId
Parent Container IKEDhTransform
Description Diffie-Hellman Group Transform ID.
Multiplicity 1
Type EcucEnumerationParamDef
Range IKE_TRANSFORM_DH_1024_BIT_MODP_- --
GROUP
IKE_TRANSFORM_DH_1024_BIT_MODP_- --
GROUP_WITH_160_BIT_PRIME_ORDER_-
SUBGROUP
IKE_TRANSFORM_DH_1536_BIT_MODP_- --
GROUP
IKE_TRANSFORM_DH_192_BIT_- --
RANDOM_ECP_GROUP
IKE_TRANSFORM_DH_2048_BIT_MODP_- --
GROUP
IKE_TRANSFORM_DH_2048_BIT_MODP_- --
GROUP_WITH_224_BIT_PRIME_ORDER_-
SUBGROUP
IKE_TRANSFORM_DH_2048_BIT_MODP_- --
GROUP_WITH_256_BIT_PRIME_ORDER_-
SUBGROUP
IKE_TRANSFORM_DH_224_BIT_- --
RANDOM_ECP_GROUP
IKE_TRANSFORM_DH_256_BIT_- --
RANDOM_ECP_GROUP
IKE_TRANSFORM_DH_3072_BIT_MODP_- --
GROUP
IKE_TRANSFORM_DH_384_BIT_- --
RANDOM_ECP_GROUP
IKE_TRANSFORM_DH_4096_BIT_MODP_- --
GROUP
IKE_TRANSFORM_DH_521_BIT_- --
RANDOM_ECP_GROUP
IKE_TRANSFORM_DH_6144_BIT_MODP_- --
GROUP
IKE_TRANSFORM_DH_768_BIT_MODP_- --
GROUP
IKE_TRANSFORM_DH_8192_BIT_MODP_- --
280 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

GROUP
IKE_TRANSFORM_DH_- --
BRAINPOOLP224R1
IKE_TRANSFORM_DH_- --
BRAINPOOLP256R1
IKE_TRANSFORM_DH_- --
BRAINPOOLP384R1
IKE_TRANSFORM_DH_- --
BRAINPOOLP512R1
IKE_TRANSFORM_DH_CURVE25519 --
IKE_TRANSFORM_DH_CURVE448 --
Default value IKE_TRANSFORM_DH_256_BIT_RANDOM_ECP_GROUP
Post-Build
Variant false
Multiplicity
Post-Build
false
Variant Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_IKE_00039 :


Name IKEKeyRef
Parent Container IKEDhTransform
Description The referenced Csm key is used for the execution of key management
functions needed for this transform.
Multiplicity 1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

281 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

IKEEncrTransform: IKEKeyLength:
EcucParamConfContainerDef
+parameter EcucIntegerParamDef
lowerMultiplicity = 1 min = 0
upperMultiplicity = * max = 255
defaultValue = 16

IKEEncryptJobRef: EcucReferenceDef CsmJob:


+reference +destination
EcucParamConfContainerDef CsmJobId:
requiresSymbolicNameValue = true EcucIntegerParamDef
lowerMultiplicity = 1 +parameter
upperMultiplicity = * min = 0
max = 4294967295
IKEDecryptJobRef: EcucReferenceDef +destination symbolicNameValue = true
+reference
requiresSymbolicNameValue = true (from Csm)

(from Csm)

+parameter

IKETransformId: EcucEnumerationParamDef +literal IKE_TRANSFORM_ENCR_DES_IV64:


EcucEnumerationLiteralDef
defaultValue = IKE_TRANSFORM_ENCR_AES_CBC

+literal IKE_TRANSFORM_ENCR_AES_CBC:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_DES:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_3DES:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_RC5:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_IDEA:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_CAST:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_BLOWFISH:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_3IDEA:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_DES_IV32:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_AES_CTR:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_AES_CCM_8:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_AES_CCM_12:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_AES_CCM_16:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_AES_GCM_8:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_AES_GCM_12:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_AES_GCM_16:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_CAMELLIA_CBC:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_CAMELLIA_CTR:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_CAMELLIA_CCM_8:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_CAMELLIA_CCM_12:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_CAMELLIA_CCM_16:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_ENCR_CHACHA20_POLY1305:
EcucEnumerationLiteralDef

282 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

10.2.73 IKEEncrTransform

SWS Item ECUC_IKE_00025 :


Container Name IKEEncrTransform
Parent Container IKETransforms
Description Container for configuration of Encryption Algorithm Transform.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_IKE_00030 :


Name IKEKeyLength
Parent Container IKEEncrTransform
Description The key length of the encryption algorithm in bytes.
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 255
Default value 16
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00029 :


Name IKETransformId
Parent Container IKEEncrTransform
Description Encryption Algorithm Transform ID.
Multiplicity 1
Type EcucEnumerationParamDef
Range IKE_TRANSFORM_ENCR_3DES --
IKE_TRANSFORM_ENCR_3IDEA --
IKE_TRANSFORM_ENCR_AES_CBC --
IKE_TRANSFORM_ENCR_AES_CCM_12 --
IKE_TRANSFORM_ENCR_AES_CCM_16 --
IKE_TRANSFORM_ENCR_AES_CCM_8 --
IKE_TRANSFORM_ENCR_AES_CTR --
IKE_TRANSFORM_ENCR_AES_GCM_12 --
IKE_TRANSFORM_ENCR_AES_GCM_16 --
IKE_TRANSFORM_ENCR_AES_GCM_8 --
IKE_TRANSFORM_ENCR_BLOWFISH --
IKE_TRANSFORM_ENCR_CAMELLIA_- --
CBC

283 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

IKE_TRANSFORM_ENCR_CAMELLIA_- --
CCM_12
IKE_TRANSFORM_ENCR_CAMELLIA_- --
CCM_16
IKE_TRANSFORM_ENCR_CAMELLIA_- --
CCM_8
IKE_TRANSFORM_ENCR_CAMELLIA_- --
CTR
IKE_TRANSFORM_ENCR_CAST --
IKE_TRANSFORM_ENCR_CHACHA20_- --
POLY1305
IKE_TRANSFORM_ENCR_DES --
IKE_TRANSFORM_ENCR_DES_IV32 --
IKE_TRANSFORM_ENCR_DES_IV64 --
IKE_TRANSFORM_ENCR_IDEA --
IKE_TRANSFORM_ENCR_RC5 --
Default value IKE_TRANSFORM_ENCR_AES_CBC
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_IKE_00032 :


Name IKEDecryptJobRef
Parent Container IKEEncrTransform
Description The referenced Csm job is used for the execution of the CsmDecrypt
primitive needed for this transform.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00031 :


Name IKEEncryptJobRef
Parent Container IKEEncrTransform
Description The referenced Csm job is used for the execution of the CsmEncrypt
primitive needed for this transform.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant false

284 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

IKEVerifyJobRef: EcucReferenceDef CsmJob:


IKEIntegTransform: +reference +destination
EcucParamConfContainerDef CsmJobId:
EcucParamConfContainerDef requiresSymbolicNameValue = true
+parameter EcucIntegerParamDef
lowerMultiplicity = 1
lowerMultiplicity = 1 upperMultiplicity = * min = 0
upperMultiplicity = * max = 4294967295
+destination symbolicNameValue = true
+reference IKEGenerateJobRef: EcucReferenceDef
requiresSymbolicNameValue = true (from Csm)

(from Csm)

+parameter

IKETransformId: EcucEnumerationParamDef +literal IKE_TRANSFORM_AUTH_HMAC_MD5_96:


EcucEnumerationLiteralDef
defaultValue = IKE_TRANSFORM_AUTH_AES_CMAC_96

+literal IKE_TRANSFORM_AUTH_HMAC_SHA1_96:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_AUTH_DES_MAC:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_AUTH_KPDK_MD5:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_AUTH_AES_XCBC_96:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_AUTH_HMAC_MD5_128:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_AUTH_HMAC_SHA1_160:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_AUTH_AES_CMAC_96:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_AUTH_HMAC_SHA2_256_128:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_AUTH_HMAC_SHA2_384_192:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_AUTH_HMAC_SHA2_512_256:
EcucEnumerationLiteralDef

10.2.74 IKEIntegTransform

285 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

SWS Item ECUC_IKE_00027 :


Container Name IKEIntegTransform
Parent Container IKETransforms
Description Container for configuration of Integrity Algorithm Transform.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_IKE_00037 :


Name IKETransformId
Parent Container IKEIntegTransform
Description Integrity Algorithm Transform ID.
Multiplicity 1
Type EcucEnumerationParamDef
Range IKE_TRANSFORM_AUTH_AES_CMAC_- --
96
IKE_TRANSFORM_AUTH_AES_XCBC_- --
96
IKE_TRANSFORM_AUTH_DES_MAC --
IKE_TRANSFORM_AUTH_HMAC_MD5_- --
128
IKE_TRANSFORM_AUTH_HMAC_MD5_- --
96
IKE_TRANSFORM_AUTH_HMAC_- --
SHA1_160
IKE_TRANSFORM_AUTH_HMAC_- --
SHA1_96
IKE_TRANSFORM_AUTH_HMAC_- --
SHA2_256_128
IKE_TRANSFORM_AUTH_HMAC_- --
SHA2_384_192
IKE_TRANSFORM_AUTH_HMAC_- --
SHA2_512_256
IKE_TRANSFORM_AUTH_KPDK_MD5 --
Default value IKE_TRANSFORM_AUTH_AES_CMAC_96
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_IKE_00036 :


Name IKEGenerateJobRef
Parent Container IKEIntegTransform
Description The referenced Csm job is used for the execution of the CsmMacGenerate
primitive needed for this transform.

286 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00035 :


Name IKEVerifyJobRef
Parent Container IKEIntegTransform
Description The referenced Csm job is used for the execution of the CsmMacVerify
primitive needed for this transform.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

287 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

CsmJob:
IKEPrfTransform: EcucParamConfContainerDef CsmJobId:
EcucParamConfContainerDef +reference IKEJobRef: EcucReferenceDef +destination
+parameter EcucIntegerParamDef
lowerMultiplicity = 1
lowerMultiplicity = 1 requiresSymbolicNameValue = true
upperMultiplicity = * min = 0
upperMultiplicity = * max = 4294967295
symbolicNameValue = true

(from Csm)

(from Csm)
+parameter

IKETransformId: EcucEnumerationParamDef +literal IKE_TRANSFORM_PRF_HMAC_MD5:


EcucEnumerationLiteralDef
defaultValue = IKE_TRANSFORM_PRF_HMAC_SHA2_256

+literal IKE_TRANSFORM_PRF_HMAC_SHA1:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_PRF_HMAC_TIGER:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_PRF_AES128_XCBC:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_PRF_HMAC_SHA2_256:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_PRF_HMAC_SHA2_384:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_PRF_HMAC_SHA2_512:
EcucEnumerationLiteralDef

+literal IKE_TRANSFORM_PRF_AES128_CMAC:
EcucEnumerationLiteralDef

10.2.75 IKEPrfTransform

SWS Item ECUC_IKE_00026 :


Container Name IKEPrfTransform
Parent Container IKETransforms
Description Container for configuration of Pseudorandom Function Transform.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_IKE_00033 :


Name IKETransformId
Parent Container IKEPrfTransform
Description Pseudorandom Function Transform ID.
Multiplicity 1
Type EcucEnumerationParamDef
Range IKE_TRANSFORM_PRF_AES128_CMAC --
IKE_TRANSFORM_PRF_AES128_XCBC --
IKE_TRANSFORM_PRF_HMAC_MD5 --
IKE_TRANSFORM_PRF_HMAC_SHA1 --
IKE_TRANSFORM_PRF_HMAC_SHA2_- --
288 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

256
IKE_TRANSFORM_PRF_HMAC_SHA2_- --
384
IKE_TRANSFORM_PRF_HMAC_SHA2_- --
512
IKE_TRANSFORM_PRF_HMAC_TIGER --
Default value IKE_TRANSFORM_PRF_HMAC_SHA2_256
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_IKE_00034 :


Name IKEJobRef
Parent Container IKEPrfTransform
Description The referenced Csm job is used for the execution of the CsmMacGenerate
primitive needed for this transform.
Multiplicity 1
Type Symbolic name reference to [ CsmJob ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

289 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

IKECertificates: IKEMaxPublicKeyLength:
EcucParamConfContainerDef +parameter EcucIntegerParamDef

min = 64
max = 4096
defaultValue = 96

IKEMaxSubjectNameSize: CsmKeyId:
EcucIntegerParamDef EcucIntegerParamDef
+parameter
min = 32 symbolicNameValue = true
max = 1024 min = 0
defaultValue = 256 max = 4294967295

+parameter (from Csm)

IKECertificateBufferRef:
+reference EcucReferenceDef
CsmKey:
+destination
lowerMultiplicity = 2 EcucParamConfContainerDef
upperMultiplicity = 2
lowerMultiplicity = 0
requiresSymbolicNameValue = true
upperMultiplicity = *
+reference
IKECertificate: IKEIssuerCertificateRef:
EcucParamConfContainerDef EcucReferenceDef
lowerMultiplicity = 2 lowerMultiplicity = 1
upperMultiplicity = 65534 +destination upperMultiplicity = 1

+subContainer

KEIdentityCertificateRef:
+reference EcucReferenceDef +destination

lowerMultiplicity = 1
upperMultiplicity = 1
requiresSymbolicNameValue = true
(from Csm)

10.2.76 IKECertificates

SWS Item ECUC_IKE_00005 :


Container Name IKECertificates
Parent Container IKE
Description Container for configuration of IKE certificates.
Configuration Parameters

SWS Item ECUC_IKE_00042 :


Name IKEMaxPublicKeyLength
Parent Container IKECertificates
Description The maximum length of the public key in a certificate.
Choose 64 for ECDSA-256, 96 for ECDSA-384, etc.
Multiplicity 1
Type EcucIntegerParamDef
Range 64 .. 4096
Default value 96
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00041 :


Name IKEMaxSubjectNameSize
Parent Container IKECertificates
290 of 293 Document ID 617: AUTOSAR_SWS_TcpIp
Specification of TCP/IP Stack
AUTOSAR CP R20-11

Description The maximum size of the Subject Name field in certificates.


Multiplicity 1
Type EcucIntegerParamDef
Range 32 .. 1024
Default value 256
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00043 :


Name IKECertificateBufferRef
Parent Container IKECertificates
Description The referenced keys are used as buffers for temporarily storing the peer
certificates.
Multiplicity 2
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
Container for configuration of an identity certificate and its
issuer certificate.
IKECertificate 2..65534
Use this container to configure a valid chain of certificates. The
top-level certificate must be a self-signed certificate.

291 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

TcpIpTlsPskIdentity: TcpIpTlsPresharedKeyIdentityHint:
EcucParamConfContainerDef +parameter EcucStringParamDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = * upperMultiplicity = 1

TcpIpTlsPresharedKeyIdentity:
+parameter EcucStringParamDef

lowerMultiplicity = 0
upperMultiplicity = 1 CsmKey:
EcucParamConfContainerDef

TcpIpTlsPresharedKeyCsmKeyRef: EcucReferenceDef lowerMultiplicity = 0


upperMultiplicity = *
+reference lowerMultiplicity = 0 +destination
CsmKeyId:
upperMultiplicity = 1
+parameter EcucIntegerParamDef
requiresSymbolicNameValue = true
symbolicNameValue = true
min = 0
max = 4294967295
TcpIpTlsPskGetClientKeyIdentityFunc: (from Csm)
+parameter EcucFunctionNameDef (from Csm)

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpTlsPskGetServerKeyIdentityFunc:
+parameter EcucFunctionNameDef

lowerMultiplicity = 0
upperMultiplicity = 1

TcpIpTlsPskGetKeyIdentyHintFunc:
+parameter EcucFunctionNameDef

lowerMultiplicity = 0
upperMultiplicity = 1

10.2.77 IKECertificate

SWS Item ECUC_IKE_00044 :


Container Name IKECertificate
Parent Container IKECertificates
Container for configuration of an identity certificate and its issuer
certificate.
Description
Use this container to configure a valid chain of certificates. The top-level
certificate must be a self-signed certificate.
Post-Build Variant
false
Multiplicity
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
Configuration Parameters

SWS Item ECUC_IKE_00045 :


Name IKEIssuerCertificateRef
Parent Container IKECertificate
Description The referenced certificate is the Issuer Certificate. The Issuer Certificate is
used to identifiy the certificate authority (CA) which is the issuer of the
Identity Certificate. The associated public key is used for verification of the
certificate.
Multiplicity 1
Type Reference to [ IKECertificate ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants

292 of 293 Document ID 617: AUTOSAR_SWS_TcpIp


Specification of TCP/IP Stack
AUTOSAR CP R20-11

Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_IKE_00046 :


Name KEIdentityCertificateRef
Parent Container IKECertificate
Description The referenced key is the Identity Certificate which is used to identifiy an
entity and to associate that identiy with a public key.
Multiplicity 1
Type Symbolic name reference to [ CsmKey ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

10.3 Published Information


For details refer to the chapter 10.3 “Published Information” in SWS_BSWGeneral.

293 of 293 Document ID 617: AUTOSAR_SWS_TcpIp

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy