TcpIp产品参考手册


缩写词注解

缩 写词

解释/描述

中文解释

ARP

Address Resolution Protocol

地址解析协议

DHCP

Dynamic Host Configuration Protocol

动态主机配置协议

ICMP

Internet Control Message Protocol

以太网控制消息协议

IP

Internet Protocol

以太网协议

MTU

Maximum Transmission Unit

最大传输单元

TCP

Transmission Control Protocol

传输控制协议

UDP

User Datagram Protocol

用户数据报协议

TCP/IP

A family of communication protocols used in computer networks

TCP/IP协议簇

LwIP

A Lightweight TCP/IP stack

一种轻量级TCP/IP协议栈

简介

在AUTOSAR架构中,TcpIp模块介于SoAd模块和EthIf模块之间,TcpIp模块软件的设计是在遵循AUTOSAR4.2.2和AUTOSAR R19-11规范的情况下,基于lwip代码开发而来。由于开发需求(暂时只实现IPv4),AUTOSAR规范本身存在的一些问题,以及lwip实现的功能情况,TcpIp模块代码并未完全实现AUTOSAR规范所有功能(具体实现情况在后面章节会详细描述)。

TcpIp模块的主要功能为:

(1)为上层模块提供TCP、UDP数据报的收发接口(TCP涉及链接);

(2)基于IP数据报实现TCP/UDP数据报的封装、解析;

(3)实现IP数据报收发所需要的DHCP、ICMP、ARP、AUTO-IP协议功能;

(4)基于以太网数据报实现IP/ARP数据报的封装、解析;

image1

图1-1 TcpIp模块层次关系图

参考资料

[1] AUTOSAR_SWS_TCPIP.pdf ,4.2.2和R19-11

[2] AUTOSAR_SWS_SocketAdaptor.pdf ,4.2.2和R19-11

[3] AUTOSAR_SRS_Ethernet.pdf ,4.2.2和R19-11

功能描述

System Scalability功能

System Scalability功能介绍

根据不同的应用情况,TcpIp模块的功能(对IP协议的支持情况)分为三个等级。因开发需求,目前只支持IPv4,因此只支持SC1功能。

image2

图2-1 TcpIp模块功能等级

System Scalability功能实现

根据配置项TcpIpGeneral->TcpIpScalabilityClass实现TcpIp功能等级的配置,目前工具固定配置为SC1,不可改。因为SC1只支持基于IPv4协议实现的功能,所以关于IPv6的配置(配置时,忽略所有IPv6相关配置项)、API等都不支持。

Internet Protocol Version 4功能

Internet Protocol Version 4功能介绍

IP协议是整个TCP/IP协议的核心,UDP、TCP、ICMP等协议都是基于IP来传送协议数据。IP协议是一种不可靠,尽最大努力,无连接的网络层协议。除了实现最基本的IP数据报的收发外,还需要完成IP数据报(长度较大)的分片和重组功能。

ARP协议,译作地址解析协议,ARP只适用于IPv4,在以太网中ARP数据报封装在以太网帧中进行发送。ARP协议的基本功能是使用目标主机的IP地址,查询其对应的MAC地址,以保证底层链路上数据报通信的进行。为了实现在网络接口中物理地址与IP地址间的转换,ARP协议中引入了缓存表的概念(记录了一条一条的<IP地址,MAC地址>对)。

AUTOIP协议是一个不用服务器来获取IP地址方法的协议,而DHCP需要一个服务器。一个配置了AUTOIP的主机将会得到一个高16 位为0xa9fe的IP地址(即169.254.xxx.xxx)。

IP协议完成了数据报在各个主机之间的递交,但是它并不完美,正如前面所说,它提供的是一种无连接的不可靠的数据报交付,协议本身不提供任何错误检验与恢复机制。为了弥补IP协议的缺陷,出现了ICMP协议。

ICMP协议用于在主机、路由器之间传递控制消息(如数据报错误信息、网络状况信息、主机状况信息等)。ICMP协议配合IP协议完成数据报的递交,提高数据报递交的有效性,但是ICMP协议报文有着自己的组织结构,且ICMP报文是被封装在IP数据报中发送的。

此外,ping命令,其本质上就是发送一个ICMP回送请求报文。

Internet Protocol Version 4功能实现

该部分的功能主要体现在TcpIpIpV4General的配置Container中,涉及的配置参数及功能如下:

(1)TcpIpArpEnabled:是否使能ARP功能;

(2)TcpIpAutoIpEnabled:是否使能AUTOIP功能;

(3)TcpIpDhcpClientEnabled:是否使能DHCP客户端功能;

(4)TcpIpIcmpEnabled:是否使能ICMP功能;

(5)TcpIpIpV4Enabled:是否使能IPv4功能;

(6)TcpIpLocalAddrIpv4EntriesMax:限制TcpIpLocalAddr配置项(IPv4)的总数目;

(7)TcpIpPathMtuDiscoveryEnabled:是否使能MTU发现机制,该功能未实现。

我们根据AUTOSAR配置,转化成LwIP的配置(工具生成lwipopts.h文件),进而实现功能的可配置性。

IPv4:该部分的功能主要体现在IPv4接收数据报的重组功能上,TcpIpIpConfig->TcpIpIpV4Config->TcpIpIpFragmentationConfig的配置Container中,涉及的配置参数及功能如下(TcpIpIpV4Enabled使能情况下配置才有效):

(1)TcpIpIpFragmentationRxEnabled:是否使能接收重组功能;

(2)TcpIpIpNumFragments:每个IP数据报最多的分片数目(在TcpIpIpFragmentationRxEnabled使能的情况下);

(3)TcpIpIpFragmentationRxEnabled:并行处理多少IP数据报的接收重组(在TcpIpIpFragmentationRxEnabled使能的情况下);

(4)TcpIpIpReassTimeout:重组超时时间(在TcpIpIpFragmentationRxEnabled使能的情况下)。

ARP:该部分的功能体现在TcpIpIpConfig-> TcpIpIpV4Config-> TcpIpArpConfig的配置Container中,涉及的配置参数及功能如下(TcpIpArpEnabled使能情况下配置才有效):

(1)TcpIpArpNumGratuitousARPonStartup:当获取到IP地址对外广播自己的<IP地址,MAC地址>,该参数为广播的次数,因基于LwIP实现(固定为1次,不可改配置);

(2)TcpIpArpPacketQueueEnabled:是否使能ARP在未获取目的MAC地址之前缓存请求发送的IP报;

(3)TcpIpArpTableEntryTimeout:ARP缓存表(Entry)的生存时间(超时则从缓存表中移除该Entry);

(4)TcpIpArpTableSizeMax:ARP缓存表的 Size(即Entry的数目)。

Auto-IP该部分的功能配置涉及的配置参数只有TcpIpAutoIpInitTimeout(TcpIpAutoIpEnabled使能情况下配置才有效),该配置时间段内用于通过DHCP来获取IP地址,若获取失败,则通过AUTOIP方式分配IP地址。LwIP通过配置尝试DHCP获取IP的次数(LWIP_DHCP_AUTOIP_COOP_TRIES)来实现相似功能。

LwIP中DHCP获取IP地址次数与时间关系如下:

表2-1 DHCP分配时间

次数

时间(秒)

1

5

2

7(5+2)

3

11(7+4)

4

19(11+8)

5

35(19+16)

6

67(35+32)

7

127(67+60)

8

187(127+60)

n

(n-1)时间+60秒

ICMP:该部分的功能体现在TcpIpIpConfig-> TcpIpIpV4Config-> TcpIpIcmpConfig的配置Container中,涉及的配置参数及功能如下(TcpIpIcmpEnabled使能情况下配置才有效):

TcpIpIcmpTtl:ICMP数据报Ttl参数(该参数封装在IP报首部);

TcpIpIcmpMsgHandler(包含参数TcpIpIcmpMsgHandlerHeaderFileName和TcpIpIcmpMsgHandlerName):主要是配置ICMP报文的接收函数,TcpIp接收到ICMP报文时调用该配置API传递给上层模块。该功能未实现,在工具上对该配置Container进行了限制(无法添加)。

TcpIp模块除了在lwip代码中实现部分ICMP常用功能,还为上层模块提供ICMPv4数据报发送接口TcpIp_IcmpTransmit。但未实现ICMP数据报上传上层模块的功能(参见配置TcpIpIcmpMsgHandler说明)。

IP Based Protocols功能

IP Based Protocols功能介绍

TcpIp模块维护一个本端IP地址表,每个本端IP地址的配置参见配置TcpIpLocalAddr,主要实现IP地址由何种方式分配,每个TcpIpLocalAddr有唯一的ID号(TcpIpAddrId)表示。虽然按AUTOSAR标准,可支持N个本端IP地址关联到同一个硬件Controller,但限于LwIP功能实现,我们目前只支持每个TcpIpCtrl只能被一个单播(TCPIP_UNICAST)TcpIpLocalAddr关联。

UDP称为用户数据报协议,是一种无连接的、不可靠的传输协议。UDP只是简单地完成数据从一个进程到另一个进程的交付,它没有提供任何流量控制机制,收到的报文也没有确认;在差错控制上,只提供了一种简单的差错控制方法,即校验和计算,当UDP收到的报文校验和计算不成功时,它将丢弃掉这个报文。UDP使用网络层的IP协议来发送报文。

TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。为了保证传输的可靠性、高效性,TCP提供了一系列的机制,例如握手机制、正面确认、超时重传、以及各种定时机制等。

AUTOSAR标准中涉及的机制(TCP配置 )有:超时重传;慢启动与拥塞避免;快速重传与快速恢复;NAGLE算法;保活机制;收发窗口机制;定时机制。

DHCP使用UDP进行报文的传输。通过同DHCP服务器的交互,设备可以获得一个有效的IP地址,使得它可以在特定网络环境下运行。目前仅支持DHCPv4的客户端功能(DHCPv4服务端,DHCPv6都不支持)。

IP Based Protocols功能实现

每个TcpIpLocalAddr配置Container中,主要实现了IP地址的分配机制TcpIpAddrAssignment(考虑到目前标准的不完善以及代码实现的复杂性,暂只支持配置一个IP分配机制)。

其中TcpIpAssignmentLifetime用以实现分配永久IP的功能未实现(暂无该需求);TcpIpAssignmentMethod项可根据需求选择何种分配方式(DHCP/AUTO-IP/STATIC等);TcpIpAssignmentPriority分配方式优先级,用于配置了多个TcpIpAddrAssignment时(目前不支持);TcpIpAssignmentTrigger用于配置IP分配是自动还是手动方式,自动方式是当调用TcpIp_RequestComMode请求TCPIP_STATE_ONLINE时自动通过配置的IP分配机制请求IP分配,手动方式需要上层模块通过调用TcpIp_RequestIpAddrAssignment,TcpIp_ReleaseIpAddrAssignment来请求IP的分配和释放。

当TcpIpAssignmentMethod配置为TCPIP_STATIC方式时,才可选择是否配置TcpIpStaticIpAddressConfig(当TcpIpAssignmentTrigger配置为TCPIP_AUTOMATIC时,必须配置;当配置为TCPIP_MANUAL时,可配可不配,当未配置时,调用TcpIp_RequestIpAddrAssignment请求IP 分配时,IP地址参数不能为空)。当IP地址状态改变时,调用Up_LocalIpAddrAssignmentChg通知上层模块。

UDP的配置参数只有TcpIpUdpTtl,该信息封装在相应IP报的首部。TcpIp为上层模块提供接口TcpIp_UdpTransmit来发送UDP报文,当收到UDP接收报文时,通过调用Up_RxIndication(一般为SoAd_RxIndication)传递给上层。

TcpIp模块除了为上层模块提供了发送接口TcpIp_TcpTransmit,收到TCP报文通过调用Up_RxIndication(一般为SoAd_RxIndication)传递给上层外,还涉及TCP作为客户端的链接接口TcpIp_TcpConnect,作为服务端进入监听模式(等待客户端发起链接请求)接口TcpIp_TcpListen,增大接收窗口的接口TcpIp_TcpReceived(上层模块接收到数据需要调用该接口来释放TcpIp模块中TCP的接收窗口)。

通过配置TcpIpTcpConfig(Container)的各个配置参数来说明TCP的功能实现:

(1)TcpIpTcpCongestionAvoidanceEnabled:拥塞避免功能(固定使能);

(2)TcpIpTcpFastRecoveryEnabled:快速恢复功能(固定使能);

(3)TcpIpTcpFastRetransmitEnabled:快速重传功能(固定使能);

(4)TcpIpTcpFinWait2Timeout:客户端发送FIN并收到服务端ACK后进入FIN_WAIT_2状态,在该状态下等待服务器端发送FIN的时间;

(5)TcpIpTcpKeepAliveEnabled:是否使能TCP保活机制;

(6)TcpIpTcpKeepAliveInterval:(在TcpIpTcpKeepAliveEnabled使能前提下才有效)保活探测报文的发送间隔时间;

(7)TcpIpTcpKeepAliveProbesMax:(在TcpIpTcpKeepAliveEnabled使能前提下才有效)保活探测报文的发送最大次数;

(8)TcpIpTcpKeepAliveTime:(在TcpIpTcpKeepAliveEnabled使能前提下才有效)TCP最后一次通信,与第一次保活探测报文发送的时间间隔;

(9)TcpIpTcpMaxRtx:TCP报文最大重传次数(LwIP最大支持13次);

(10)TcpIpTcpMsl:TCP客户端在TIME_WAIT状态下需要等待2×MSL时间才能切换到CLOSED状态;

(11)TcpIpTcpNagleEnabled:糊涂窗口避免功能(固定使能);

(12)TcpIpTcpReceiveWindowMax:接收窗口最大值;

(13)TcpIpTcpRetransmissionTimeout:超时重传的超时时间,不支持(LWIP中重传超时RTT是根据网络状况动态计算的,不是固定配置值);

(14)TcpIpTcpSlowStartEnabled:慢启动功能(固定使能);

(15)TcpIpTcpSynMaxRtx:链接请求重传最大次数(LwIP最大支持13次);

(16)TcpIpTcpSynReceivedTimeout:服务端收到SYN后,回复SYN/ACK,进入到SYN_RCVD状态,在该状态等待客户端回复ACK的时间;

(17)TcpIpTcpTtl:该信息封装在相应IP报首部。

DHCPv4客户端功能,AUTOSAR标准DHCP客户端配置Container(TcpIpDhcpConfig)中配置参数缺失。因此,只根据配置TcpIpDhcpClientEnabled实现DHCPv4客户端功能是否使能,若使能则启动从DHCP服务器获取IP地址的功能。

Message Reception功能

Message Reception功能介绍

当收到一帧以太网报文时,根据首部信息可解析成IP报文或者ARP报文;IP报文又可根据其首部信息解析成ICMP报文、TCP报文、UDP报文;UDP报文又可进一步解析成DHCP报文。TcpIp模块会将UDP报文(封装的上层协议非DHCP),TCP报文传递给上层模块。ARP、ICMP、DHCP的接收处理实现在TcpIp模块中(具体实现在LwIP代码中)。

Message Reception功能实现

image3

图2-2 UDP/TCP接收

相比于UDP报文,TCP报文的接收需注意在上层模块中调用TcpIp_TcpReceived来释放TCP接收窗口,并需回复ACK信息。

Message Transmission功能

Message Transmission功能介绍

TcpIp模块对外提供ICMP报文,UDP报文,TCP报文的发送接口,分别为TcpIp_IcmpTransmit,TcpIp_UdpTransmit,TcpIp_TcpTransmit;而DHCP报文和ARP报文的发送机制由内部代码实现,用以从DHCP服务器获取IP地址以及获取目的MAC地址。

Message Transmission功能实现

TcpIp主要实现UDP和TCP的发送功能。相比于UDP,TCP在发送报文之前需要先建立链接(三次握手)。

image4

图2-3 UDP发送

image5

图2-4 TCP客户端链接

image6

图2-5 TCP服务端链接

image7

图2-6 TCP发送

TCP/IP Stack state handling功能

TCP/IP Stack state handling功能介绍

TcpIp的状态指的是每个Controller的状态,分为TCPIP_STATE_OFFLINE、TCPIP_STATE_STARTUP、TCPIP_STATE_OFFLINE、TCPIP_STATE_ONHOLD、TCPIP_STATE_SHUTDOWN五种状态,其中TCPIP_STATE_STARTUP和TCPIP_STATE_SHUTDOWN为中间过渡状态。

TCP/IP Stack state handling功能实现

EthSM模块通过调用TcpIp_RequestComMode来请求TcpIp Controller状态的切换,当TcpIp Controller状态发生改变时,TcpIp模块将调用EthSM_TcpIpModeIndication来通知EthSM。

image8

图2-7 TcpIp Controller状态切换

源文件描述

表3-1 TcpIp组件文件描述

文件

说明

TcpIp.h

TcpIp模块头文件 ,包含了API函数的扩展声明并定义了端口的数据结构。

TcpIp.c

TcpIp模块源文件,包含了API函数的实现。

T cpIp_Internal.h

T cpIp模块内部代码头文件,包含了内部实现的数据结构。

TcpIp_Types.h

TcpIp模块类 型定义头文件,包含了AUTOSAR规范中定义的数据结构。

TcpIp_MemMap.h

TcpIp模块内存布局。

TcpIp_Cfg.h

定义TcpIp模块预编译时用到的配置参数。

TcpIp_Lcfg.h

定义TcpIp模块中L配置中需要用到的数据结构。

TcpIp_Lcfg.c

TcpIp模块L配置生成文件。

TcpIp_PBcfg.h

定义TcpIp模块中PB配置中需要用到的数据结构。

TcpIp_PBcfg.c

TcpIp模块PB配置生成文件。

TcpI p_SocketOwner.h

创建Socket所属上层Owner,配置生成文件。

SchM_TcpIp.h

提供给 SchM 的头文件,用于公开周期调度函数

lwip

lwip代码

image9

图3-1 TcpIp组件文件交互关系图

API接口

类型定义

TcpIp_ConfigType类型定义

名称

TcpIp_ConfigType

类型

结构体

范围

依赖于具体实现

描述

TcpIp模块的配置数据结构体

TcpIp_DomainType类型定义

名称

TcpIp_DomainType

类型

uint16

范围

TCPIP_AF_INET

0x02

Use IPv4

TCPIP_AF_INET6

0x1c

Use IPv6

描述

TcpIp地址(IP)类型

TcpIp_ProtocolType类型定义

名称

TcpIp_ProtocolType

类型

枚举类型

范围

TCPIP_IPPROTO_TCP

0x06

Use TCP

TCPIP_IPPROTO_UDP

0x11

Use UDP

描述

用于socket的协议类型

TcpIp_SockAddrType类型定义

名称

TcpIp_SockAddrType

类型

结构体

元素

TcpIp_DomainType

domain

IP类型(IPv4/IPv6)

uint16

port

端口号

TcpIP_IpAddrType

addr

IP地址

描述

AUTOS AR标准存在问题(标准 中只包含domain),根 据理解增加port和addr

TcpIp_SockAddrInetType类型定义

名称

Tc pIp_SockAddrInetType

类型

结构体

元素

TcpIp_DomainType

domain

IP类型(IPv4/IPv6)

uint16

port

端口号

uint32[1]

addr

IPv4地址

描述

定义IPv4的地址类型

TcpIp_SockAddrInet6Type类型定义

名称

T cpIp_SockAddrInet6Type

类型

结构体

元素

TcpIp_DomainType

domain

IP类型(IPv4/IPv6)

uint16

port

端口号

uint32[4]

addr

IPv6地址

描述

定义IPv6的地址类型

TcpIp_LocalAddrIdType类型定义

名称

TcpIp_LocalAddrIdType

类型

uint8

范围

0-255

描述

表示IP地址ID号(所有local IP Address统一编号)

TcpIp_SocketIdType类型定义

名称

TcpIp_SocketIdType

类型

uint8,uint16

范围

0-255/0-65535

描述

表示IP地址ID号(所有local IP Address统一编号)

TcpIp_StateType类型定义

名称

TcpIp_StateType

类型

枚举类型

范围

TCPIP_STATE_ONLINE

在线状态,可通信

TCPIP_STATE_ONHOLD

暂停状态,不可通信

TCPIP_STATE_OFFLINE

下线状态,不可通信

TCPIP_STATE_STARTUP

启 | 动 | 状 | 态 | , | 获 | 取 | I | P | 地 | 址 | 阶 | 段 | , | 不 | 可 | 通 | 信 |

TCPIP_STATE_SHUTDOWN

关 | 闭 | 状 | 态 | , | 释 | 放 | 资 | 源 | 阶 | 段 | , | 不 | 可 | 通 | 信 |

描述

表示EthIf controller的状态

TcpIp_IpAddrStateType类型定义

名称

TcpIp_IpAddrStateType

类型

枚举类型

范围

TCPIP_IPADDR_STATE_ASSIGNED

IP已分配

TCPIP_IPADDR_STATE_ONHOLD

IP暂停使用

TCPIP_IPADDR_STATE_UNASSIGNED

IP未分配

描述

表示local IP地址的状态

TcpIp_EventType类型定义

名称

TcpIp_EventType

类型

枚举类型

范围

TCPIP_TCP_RESET

0 x01

TCP链接重置,socke t和所有关联的资源全被释放

TCPIP_TCP_CLOSED

0 x02

TCP链接成功关闭,socke t和所有关联的资源全被释放

TC PIP_TCP_FIN_RECEIVED

0 x03

接收 到FIN信号(断开链接请求)

TCPIP_UDP_CLOSED

0 x04

UDP soc ket和所有关联资源全被释放

TCPIP_TLS _HANDSHAKE_SUCCEEDED

0 x05

TLS握 手已成功建立,TLS连接可用

描述

表示TcpIp报告的事件

TcpIp_IpAddrAssignmentType类型定义

名称

TcpI p_IpAddrAssignmentType

类型

枚举类型

范围

TCPIP_IP ADDR_ASSIGNMENT_STATIC

静态配置IPv4/IPv6地址

TCPIP_IPADDR_ASS IGNMENT_LINKLOCAL_DOIP

使用DoIP参数,通过 Linklocal方式分配IPv4/IPv6地址 (代码实现与LINKLOCAL方式相同)

TCPIP_ IPADDR_ASSIGNMENT_DHCP

通过DHCP动态分配IPv4/IPv6地址

TCPIP_IPADD R_ASSIGNMENT_LINKLOCAL

通过 Linklocal方式分配IPv4/IPv6地址

TCPIP_IPADDR_ ASSIGNMENT_IPV6_ROUTER

通过路由器通告动态分配IPv6地址

TCPIP _IPADDR_ASSIGNMENT_ALL

TcpIpAssignme ntTrigger设置为TCPIP_MANUAL的所 有配置的TcpIpAssignmentMethods

描述

表示 IPv4/IPv6地址分配策略

TcpIp_ReturnType类型定义

名称

TcpIp_ReturnType

类型

枚举类型

范围

TCPIP_OK

操作成功

TCPIP_E_NOT_OK

操作失败

TCPIP_E_PHYS_ADDR_MISS

操作失败(因 为ARP/NDP未缓存MAC地址)

描述

TcpIp返回值:类型

TcpIp_ParamIdType类型定义

名称

TcpIp_ParamIdType

类型

uint8

范围

TCPI P_PARAMID_TCP_RXWND_MAX

0 x00

表示 socket的TCP最大接收窗口

TCPIP_PARAMID_FRAMEPRIO

0 x01

表示通过soc ket发送的报文帧的优先级

TCPIP_PARAMID_TCP_NAGLE

0 x02

是否使能Nagle算法

TCPI P_PARAMID_TCP_KEEPALIVE

0 x03

是否使能保活机制

TC PIP_PARAMID_TTL(0x04)

0 x04

表 示socket发送报文的TTL值

TCPIP_PAR AMID_TCP_KEEPALIVE_TIME

0 x05

表示 TCP最后一次数据报收发到 发送保活探测报文的时间

TCPIP_PARAMID_T CP_KEEPALIVE_PROBES_MAX

0 x06

保活探测报文的发送次数

TCPIP_PARAMID _TCP_KEEPALIVE_INTERVAL

0 x07

保活 探测报文发送的时间间隔

TCPIP_P ARAMID_TCP_OPTIONFILTER

0 x08

表示socket的TCP option字段

TCPIP _PARAMID_PATHMTU_ENABLE

0 x09

使能对应socketde 最大传输单元 MTU 探测

TCPIP_PARAMID_FLOWLABEL

0 x0a

表示 IPv6 header 中 20-bit Flow Label field

TCPIP_PARAMID_DSCP

0 x0b

表示 IP header 中 6-bit Differentiated Service Field

TCP IP_PARAMID_UDP_CHECKSUM

0 x0c

表示socket的UDP che cksum的校验使能或这禁用

TCPIP_PARAMID_TL S_CONNECTION_ASSIGNMENT

0 x0d

将TLS连接关联TCP socket

TCPIP_ PARAMID_VENDOR_SPECIFIC

0 x80

供应商IDs范围的起始值

描述

所有 支持的socket参数IDs类型

TcpIpIpAddrWildcardType类型定义

名称

Tcp IpIpAddrWildcardType

类型

uint32

范围

TCPIP_IPADDR_ANY

IPv4地址通配符的定义

描述

IPv4地址通配符

TcpIpIp6AddrWildcardType类型定义

名称

TcpI pIp6AddrWildcardType

类型

uint32

范围

TCPIP_IP6ADDR_ANY

IPv6地址通配符的定义

描述

IPv6地址通配符

TcpIpPortWildcardType类型定义

名称

T cpIpPortWildcardType

类型

uint16

范围

TCPIP_PORT_ANY

端口号通配符的定义

描述

端口号通配符

TcpIpLocalAddrIdWildcardType类型定义

名称

Tc pIpLocalAddrIdWildcardType

类型

TcpIp_LocalAddrIdType

范围

TCPIP_LOCALADDRID_ANY

LocalAddrId通配符的定义

描述

LocalAddrId通配符

TcpIp_ArpCacheEntryType 类型定义

名称

T cpIp_ArpCac heEntryType

类型

结构体

元素

InetAddr

uint32[1]

Ipv4类型的IP地址

PhysAddr

uint8[6]

物理地址

State

uint8

条目状态(

TCPIP_ARP_ENTRY_STATIC, TCPIP_ARP_ENTRY_VALID, TCPIP_ARP_ENTRY_STALE

描述

ARP缓存 条目的类型

输入函数描述

输入模块

API

EthIf

EthIf_GetPhysAddr

EthIf_ProvideTxBuffer

EthIf_Transmit

EthSM

EthSM_TcpIpModeIndication

Det

Det_ReportError

lwip

lwip代码实现的API

静态接口函数定义

TcpIp_Init函数定义

函数名称:

TcpIp_Init

函数原型:

void TcpIp_Init (

const TcpIp_ConfigType* ConfigPtr)

服务编号:

0x01

同步/异步:

同步

是否可重入:

输入参数:

ConfigPtr

值 域:

输 入输出参数:

输出参数:

返回值:

功能概述:

TcpIp模块初始化函数

TcpIp_GetVersionInfo函数定义

函数名称:

T cpIp_GetVersionInfo

函数原型:

Void T cpIp_GetVersionInfo (

St d_VersionInfoType* versioninfo)

服务编号:

0x02

同步/异步:

同步

是否可重入:

输入参数:

输 入输出参数:

输出参数

versioninfo

值 域:

返回值:

功能概述

获 取TcpIp模块版本信息

TcpIp_Close函数定义

函数名称:

TcpIp_Close

函数原型:

Std_ReturnType TcpIp_Close (

TcpIp_SocketIdType SocketId,

boolean Abort)

服务编号:

0x04

同步/异步:

异步

是否可重入:

不同的S ocketId可重入,相同 的SocketId不可重入

输入参数:

SocketId

值 域:

Abort

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

请求关闭socket, 并释放所有关联资源

TcpIp_Bind函数定义

函数名称:

TcpIp_Bind

函数原型:

Std_ReturnType TcpIp_Bind (

TcpIp_SocketIdType SocketId,

Tc pIp_LocalAddrIdType LocalAddrId,

uint16* PortPtr)

服务编号:

0x05

同步/异步:

同步

是否可重入:

不同的S ocketId可重入,相同 的SocketId不可重入

输入参数:

SocketId

值 域:

LocalAddrId

值 域:

输 入输出参数:

PortPtr

值 域:

当输入为ANY时 ,自动分配一个49152-65 535的端口号来进行绑定, 并用该分配值更新该参数

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

请求将一个UDP/TCP socket与a local resou rce(IP和Port)绑定

TcpIp_TcpConnect函数定义

函数名称:

TcpIp_TcpConnect

函数原型:

Std_ReturnType TcpIp_TcpConnect (

TcpIp_SocketIdType SocketId,

const T cpIp_SockAddrType* RemoteAddrPtr)

服务编号:

0x06

同步/异步:

异步

是否可重入:

不同的S ocketId可重入,相同 的SocketId不可重入

输入参数:

SocketId

值 域:

RemoteAddrPtr

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

TCP(客 户端)请求建立链接

TcpIp_TcpListen函数定义

函数名称:

TcpIp_TcpListen

函数原型:

Std_ReturnType TcpIp_TcpListen (

TcpIp_SocketIdType SocketId,

uint16 MaxChannels)

服务编号:

0x07

同步/异步:

异步

是否可重入:

不同的S ocketId可重入,相同 的SocketId不可重入

输入参数:

SocketId

值 域:

MaxChannels

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

TCP(服 务端)请求进行监听

TcpIp_TcpReceived函数定义

函数名称:

TcpIp_TcpReceived

函数原型:

Std_ReturnType TcpIp_TcpReceived (

TcpIp_SocketIdType SocketId,

uint32 Length)

服务编号:

0x08

同步/异步:

异步

是否可重入:

不同的S ocketId可重入,相同 的SocketId不可重入

输入参数:

SocketId

值 域:

Length

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

该socket接收数 据被上层模块确认, 用以增大TCP接收窗口

TcpIp_RequestComMode函数定义

函数名称:

T cpIp_RequestComMode

函数原型:

Std_ReturnType T cpIp_RequestComMode (

uint8 CtrlIdx,

TcpIp_StateType State)

服务编号:

0x09

同步/异步:

异步

是否可重入:

输入参数:

CtrlIdx

值 域:

State

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

请求切换C ontroller的通信状态

TcpIp_RequestIpAddrAssignment函数定义

函数名称:

TcpIp_Requ estIpAddrAssignment

函数原型:

Std_ReturnType TcpIp_Requ estIpAddrAssignment (

Tc pIp_LocalAddrIdType LocalAddrId,

TcpIp_I pAddrAssignmentType Type,

const T cpIp_SockAddrType* LocalIpAddrPtr,

uint8 Netmask,

const T cpIp_SockAddrType* DefaultRouterPtr)

服务编号:

0x0A

同步/异步:

异步

是否可重入:

输入参数:

LocalAddrId

值 域:

Type

值 域:

LocalIpAddrPtr

值 域:

Netmask

值 域:

DefaultRouterPtr

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

请求 LocalAddrId的IP分配

TcpIp_ReleaseIpAddrAssignment函数定义

函数名称:

TcpIp_ Rele aseIpAddrAssignment

函数原型:

Std_ReturnType TcpIp_Rele aseIpAddrAssignment (

Tc pIp_LocalAddrIdType LocalAddrId)

服务编号:

0x0B

同步/异步:

异步

是否可重入:

输入参数:

LocalAddrId

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

请求IP地址释放

TcpIp_ResetIpAssignment函数定义

函数名称:

TcpIp_ ResetIpAssignment

函数原型:

Std_ReturnType TcpIp_ResetIpAssignment (void)

服务编号:

0x1B

同步/异步:

同步/异步

是否可重入:

输入参数:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

请求IP地址重置(重置到无效IP值),作用于DHCP客户端

TcpIp_IcmpTransmit函数定义

函数名称:

TcpIp_ IcmpTransmit

函数原型:

Std_ReturnType TcpIp_IcmpTransmit (

Tc pIp_LocalAddrIdType LocalIpAddrId,

const T cpIp_SockAddrType* RemoteAddrPtr,

uint8 Ttl,

uint8 Type,

uint8 Code,

uint16 DataLength,

const uint8* DataPtr)

服务编号:

0x0C

同步/异步:

同步

是否可重入:

输入参数:

LocalIpAddrId

值 域:

RemoteAddrPtr

值 域:

Ttl

值 域:

Type

值 域:

Code

值 域:

DataLength

值 域:

DataPtr

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

发送ICMP报文

TcpIp_DhcpReadOption函数定义

函数名称:

TcpIp_ DhcpReadOption

函数原型:

Std_ReturnType T cpIp_DhcpReadOption (

Tc pIp_LocalAddrIdType LocalIpAddrId,

uint8 Option,

uint8* DataLength,

uint8* DataPtr)

服务编号:

0x0D

同步/异步:

同步

是否可重入:

输入参数:

LocalIpAddrId

值 域:

Option

值 域:

输 入输出参数:

DataLength

值 域:

输出参数:

DataPtr

值 域:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

获 取DHCP的option数据

TcpIp_DhcpWriteOption函数定义

函数名称:

TcpIp_ DhcpWriteOption

函数原型:

Std_ReturnType Tc pIp_DhcpWriteOption (

Tc pIp_LocalAddrIdType LocalIpAddrId,

uint8 Option,

uint8 DataLength,

const uint8* DataPtr)

服务编号:

0x0E

同步/异步:

同步

是否可重入:

输入参数:

LocalIpAddrId

值 域:

Option

值 域:

DataLength

值 域:

DataPtr

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

更 新DHCP的option数据

TcpIp_ChangeParameter函数定义

函数名称:

TcpIp_ ChangeParameter

函数原型:

Std_ReturnType Tc pIp_ChangeParameter (

TcpIp_SocketIdType SocketId,

TcpIp_ParamIdType ParameterId,

const uint8* ParameterValue)

服务编号:

0x0F

同步/异步:

同步

是否可重入:

不同的S ocketId可重入,相同 的SocketId不可重入

输入参数:

SocketId

值 域:

ParameterId

值 域:

ParameterValue

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

请求改 写socket的传输参数

TcpIp_GetIpAddr函数定义

函数名称:

TcpIp_GetIpAddr

函数原型:

Std_ReturnType TcpIp_GetIpAddr (

Tc pIp_LocalAddrIdType LocalAddrId,

T cpIp_SockAddrType* IpAddrPtr,

uint8* NetmaskPtr,

T cpIp_SockAddrType* DefaultRouterPtr)

服务编号:

0x10

同步/异步:

同步

是否可重入:

输入参数:

LocalAddrId

值 域:

输 入输出参数:

IpAddrPtr

值 域:

DefaultRouterPtr

值 域:

输出参数:

NetmaskPtr

值 域:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

获取本端IP地 址、掩码、网关信息

TcpIp_GetPhysAddr函数定义

函数名称:

TcpIp_GetPhysAddr

函数原型:

Std_ReturnType TcpIp_GetPhysAddr (

Tc pIp_LocalAddrIdType LocalAddrId,

uint8* PhysAddrPtr)

服务编号:

0x11

同步/异步:

同步

是否可重入:

输入参数:

LocalAddrId

值 域:

输 入输出参数:

输出参数:

PhysAddrPtr

值 域:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

获取本端 PHY地址(MAC地址)

TcpIp_GetRemotePhysAddr函数定义

函数名称:

TcpI p_GetRemotePhysAddr

函数原型:

TcpIp_ReturnType TcpI p_GetRemotePhysAddr (

uint8 CtrlIdx,

const T cpIp_SockAddrType* IpAddrPtr,

uint8* PhysAddrPtr,

boolean initRes)

服务编号:

0x16

同步/异步:

同步

是否可重入:

输入参数:

CtrlIdx

值 域:

IpAddrPtr

值 域:

initRes

值 域:

输 入输出参数:

输出参数:

PhysAddrPtr

值 域:

返回值:

TcpIp_ReturnType: TCPIP_E_OK TCPI P_E_PHYS_ADDR_MISS/ TCPIP_E_NOT_OK

功能概述:

获取远端 IP地址对应的MAC地址

TcpIp_GetCtrlIdx函数定义

函数名称:

TcpIp_GetCtrlIdx

函数原型:

Std_ReturnType TcpIp_GetCtrlIdx (

Tc pIp_LocalAddrIdType LocalAddrId,

uint8* CtrlIdxPtr)

服务编号:

0x17

同步/异步:

同步

是否可重入:

输入参数:

LocalAddrId

值 域:

输 入输出参数:

输出参数:

CtrlIdxPtr

值 域:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

获取该LocalAdd rId关联的Controller ID值

TcpIp_UdpTransmit函数定义

函数名称:

TcpIp_UdpTransmit

函数原型:

Std_ReturnType TcpIp_UdpTransmit (

TcpIp_SocketIdType SocketId,

const uint8* DataPtr,

const T cpIp_SockAddrType* RemoteAddrPtr,

uint16 TotalLength)

服务编号:

0x12

同步/异步:

同步

是否可重入:

不同的S ocketId可重入,相同 的SocketId不可重入

输入参数:

SocketId

值 域:

DataPtr

值 域:

RemoteAddrPtr

值 域:

TotalLength

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

UDP报文发送

TcpIp_TcpTransmit函数定义

函数名称:

TcpIp_TcpTransmit

函数原型:

Std_ReturnType TcpIp_TcpTransmit (

TcpIp_SocketIdType SocketId,

const uint8* DataPtr,

uint32 AvailableLength,

boolean ForceRetrieve)

服务编号:

0x13

同步/异步:

异步

是否可重入:

不同的S ocketId可重入,相同 的SocketId不可重入

输入参数:

SocketId

值 域:

DataPtr

值 域:

AvailableLength

值 域:

ForceRetrieve

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

TCP报文发送

TcpIp_RxIndication函数定义

函数名称:

TcpIp_RxIndication

函数原型:

void TcpIp_RxIndication (

uint8 CtrlIdx,

Eth_FrameType FrameType,

boolean IsBroadcast,

const uint8* PhysAddrPtr,

uint8* DataPtr,

uint16 LenByte)

服务编号:

0x14

同步/异步:

同步

是否可重入:

输入参数:

CtrlIdx

值 域:

FrameType

值 域:

IsBroadcast

值 域:

PhysAddrPtr

值 域:

DataPtr

值 域:

LenByte

值 域:

输 入输出参数:

输出参数:

返回值:

功能概述:

TcpIp模块报文接收

TcpIp_MainFunction函数定义

函数名称:

TcpIp_MainFunction

函数原型:

void TcpIp_MainFunction(void)

服务编号:

0x15

同步/异步:

是否可重入:

输入参数:

输 入输出参数:

输出参数:

返回值:

功能概述:

TcpIp模块调度主函数(周期性被调用)

可配置函数定义

TcpIp_<Up>GetSocket函数定义(实现SoAd,AUTOSAR定义在配置函数中)

函数名称:

T cpIp_<Up>GetSocket

函数原型:

Std_ReturnType T cpIp_<Up>GetSocket (

TcpIp_DomainType Domain,

TcpIp_ProtocolType Protocol,

T cpIp_SocketIdType* SocketIdPtr)

服务编号:

0x03

同步/异步:

同步

是否可重入:

输入参数:

Domain

值 域:

Protocol

值 域:

输 入输出参数:

输出参数:

SocketIdPtr

值 域:

返回值:

功能概述:

获取新socket的函数

<Up_PhysAddrTableChg>函数定义(未实现)

函数名称:

<U p_PhysAddrTableChg>

函数原型:

void <U p_PhysAddrTableChg> (

uint8 CtrlIdx,

const T cpIp_SockAddrType* IpAddrPtr,

const uint8* PhysAddrPtr,

boolean valid)

服务编号:

同步/异步:

同步

是否可重入:

输入参数:

CtrlIdx

值 域:

IpAddrPtr

值 域:

PhysAddrPtr

值 域:

valid

值 域:

输 入输出参数:

输出参数:

返回值:

功能概述:

当ARP中缓存 列表更新时,TcpIp调 用该API通知上层模块

<Up_RxIndication>函数定义

函数名称:

Up_RxIndication

函数原型:

void <Up_RxIndication> (

TcpIp_SocketIdType SocketId,

const T cpIp_SockAddrType* RemoteAddrPtr,

uint8* BufPtr,

uint16 Length)

服务编号:

同步/异步:

同步

是否可重入:

不同的S ocketId可重入,相同 的SocketId不可重入

输入参数:

SocketId

值 域:

RemoteAddrPtr

值 域:

BufPtr

值 域:

Length

值 域:

输 入输出参数:

输出参数:

返回值:

功能概述:

Tcp Ip模块调用该API传递 接收数据到上层模块

<Up_TcpIpEvent>函数定义

函数名称:

Up_TcpIpEvent

函数原型:

void <Up_TcpIpEvent> (

TcpIp_SocketIdType SocketId,

TcpIp_EventType Event)

服务编号:

同步/异步:

同步

是否可重入:

输入参数:

SocketId

值 域:

Event

值 域:

输 入输出参数:

输出参数:

返回值:

功能概述:

通 知socket的事件请求

<Up_TxConfirmation>函数定义

函数名称:

Up_ TxConfirmation

函数原型:

void <Up_TxConfirmation> (

TcpIp_SocketIdType SocketId,

uint16 Length)

服务编号:

同步/异步:

同步

是否可重入:

不同的S ocketId可重入,相同 的SocketId不可重入

输入参数:

SocketId

值 域:

Length

值 域:

输 入输出参数:

输出参数:

返回值:

功能概述:

TCP报文发送确认

<Up_TcpAccepted>函数定义

函数名称:

Up_TcpAccepted

函数原型:

Std_ReturnType <Up_TcpAccepted> (

TcpIp_SocketIdType SocketId,

TcpIp_SocketIdType SocketIdConnected,

const T cpIp_SockAddrType* RemoteAddrPtr)

服务编号:

同步/异步:

同步

是否可重入:

输入参数:

SocketId

值 域:

SocketIdConnected

值 域:

RemoteAddrPtr

值 域:

输 入输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK/E_NOT_OK

功能概述:

处于监听状态的TC P服务端socket,当有 新的TCP客户端与其建 立链接后,调用该API

<Up_TcpConnected>函数定义

函数名称:

Up_TcpConnected

函数原型:

void <Up_TcpConnected> (

TcpIp_SocketIdType SocketId)

服务编号:

同步/异步:

同步

是否可重入:

输入参数:

SocketId

值 域:

输 入输出参数:

输出参数:

返回值:

功能概述:

TCP(客户端)之前发 起链接请求,现在链 接建立了将调用该API

<Up_CopyTxData>函数定义

函数名称:

Up_CopyTxData

函数原型:

BufReq_ReturnType <Up_CopyTxData> (

TcpIp_SocketIdType SocketId,

uint8* BufPtr,

uint16 BufLength)

服务编号:

同步/异步:

同步

是否可重入:

不同的S ocketId可重入,相同 的SocketId不可重入

输入参数:

SocketId

值 域:

BufLength

值 域:

输 入输出参数:

输出参数:

BufPtr

值 域:

返回值:

BufReq _ReturnType:BUFREQ _OK/BUFREQ_E_NOT_OK

功能概述:

从上 层模块copy发送数据

<Up_LocalIpAddrAssignmentChg>函数定义

函数名称:

Up_Local IpAddrAssignmentChg

函数原型:

void <Up_LocalI pAddrAssignmentChg> (

Tc pIp_LocalAddrIdType IpAddrId,

Tc pIp_IpAddrStateType State)

服务编号:

同步/异步:

同步

是否可重入:

输入参数:

IpAddrId

值 域:

State

值 域:

输 入输出参数:

输出参数:

返回值:

功能概述:

通知上层模块I P地址分配状态改变了

配置

TcpIpGeneral

image10

图5-1 TcpIpGeneral容器配置图

表5‑1 TcpIpGeneral属性描述

UI名称

描述

TcpIp BufferMemory

取值范围

0 .. 4294967295

默认取值

参数描述

Memory size in bytes reserved for TCP/IP buffers.

依赖关系

取值范围依 赖于具体芯片资源

TcpIpDe vErrorDetect

取值范围

TRUE/FALSE

默认取值

参数描述

Switches the Default Error Tracer (Det) detection and notification ON or OFF.

•true: enabled (ON).

•false: disabled (OFF).

依赖关系

DET模块

TcpIpDhcpS erverEnabled

取值范围

TRUE/FALSE

默认取值

参数描述

Enables (TRUE) or disables (FALSE) the DHCP (Dynamic Host Configuration Protocol) Server.

依赖关系

功能未 实现,固定不使能

TcpIpMainFu nctionPeriod

取值范围

0 .. INF

默认取值

参数描述

Period of Tc pIp_MainFunction in [s].

依赖关系

OS周期任务的时间 周期,取值大于0

T cpIpResetIpA ssignmentApi

取值范围

TRUE/FALSE

默认取值

参数描述

Enables/disables the API TcpIp_R esetIpAssignment of a DHCP-client.

依赖关系

DHCP客户端 功能使能情况(T cpIpResetIpAssig nmentApi使能), TcpIp_ResetIpAs signment才使能。

TcpIpScal abilityClass

取值范围

SC1/SC2/SC3

默认取值

SC1

参数描述

In order to customize the TcpIp Stack to the specific needs of the user it can be scaled according to the scalability classes.

依赖关系

未实现IPv6功能 ,固定配置为SC1

Tcp IpTcpEnabled

取值范围

TRUE/FALSE

默认取值

参数描述

Enables (TRUE) or disabled (FALSE) support of TCP (Transmission Control Protocol).

依赖关系

TcpIp TcpSocketMax

取值范围

0 .. 65535

默认取值

参数描述

Maximum number of TCP sockets

依赖关系

依赖于Tcp IpTcpEnabled使能

Tcp IpUdpEnabled

取值范围

TRUE/FALSE

默认取值

参数描述

Enables (TRUE) or disabled (FALSE) support of UDP (User Datagram Protocol)

依赖关系

TcpIp UdpSocketMax

取值范围

0 .. 65535

默认取值

参数描述

Maximum number of UDP sockets.

依赖关系

依赖于Tcp IpUdpEnabled使能

TcpIpVe rsionInfoApi

取值范围

TRUE/FALSE

默认取值

参数描述

If true the TcpI p_GetVersionInfo API is available.

依赖关系

TcpIpV4Generals

image11

图5-2 TcpIpV4General容器配置图

表5‑2 TcpV4IpGeneral属性描述

UI名称

描述

Tcp IpArpEnabled

取值范围

TRUE/FALSE

默认取值

TRUE

参数描述

Enables (TRUE) or disables (FALSE) support of ARP (Address Resolution Protocol).

依赖关系

整个Tc pIpIpV4General中 配置参数都依赖于 TcpIpScalability Class配置为SC1或 者SC3(该配置目 前固定为SC1)。

TcpIpA utoIpEnabled

取值范围

TRUE/FALSE

默认取值

参数描述

Enables (TRUE) or disables (FALSE) the Auto-IP (automatic private IP addressing) sub-module.

依赖关系

整个Tc pIpIpV4General中 配置参数都依赖于 TcpIpScalability Class配置为SC1或 者SC3(该配置目 前固定为SC1)。

TcpIpDhcpC lientEnabled

取值范围

TRUE/FALSE

默认取值

参数描述

Enables (TRUE) or disables (FALSE) the DHCP (Dynamic Host Configuration Protocol) Client.

依赖关系

整个Tc pIpIpV4General中 配置参数都依赖于 TcpIpScalability Class配置为SC1或 者SC3(该配置目 前固定为SC1)。

TcpI pIcmpEnabled

取值范围

TRUE/FALSE

默认取值

TRUE

参数描述

Enables (TRUE) or disabled (FALSE) support of ICMP (Internet Control Message Protocol).

依赖关系

整个Tc pIpIpV4General中 配置参数都依赖于 TcpIpScalability Class配置为SC1或 者SC3(该配置目 前固定为SC1)。

TcpI pIpV4Enabled

取值范围

TRUE/FALSE

默认取值

TRUE

参数描述

Enables (TRUE) or disables (FALSE) support of IPv4 (Internet Protocol version 4).

依赖关系

整个Tc pIpIpV4General中 配置参数都依赖于 TcpIpScalability Class配置为SC1或 者SC3(该配置目 前固定为SC1)。

TcpI pLocalAddrIp v4EntriesMax

取值范围

0 .. 255

默认取值

参数描述

Maximum number of LocalAddr table entries for IPv4.

依赖关系

限 制TcpIpLocalAdd r(TCPIP_AF_INET 属性)的配置数目

TcpI pPathMtuDisc overyEnabled

取值范围

TRUE/FALSE

默认取值

FALSE

参数描述

Enables (TRUE) or disables (FALSE) the discovery of the maximum transmission unit on a path according to IETF RfC 1191.

依赖关系

功能未 实现,固定配置为 FALSE,不可改。

TcpIpArpS taticEnabled

取值范围

TRUE/FALSE

默认取值

FALSE

参数描述

Enable/Disable static ARP.

依赖关系

T cpIpArpEnabled配 置为TRUE时有效。

TcpIpCtrl

image12

图5-3 TcpIpCtrl容器配置图

表5‑3 TcpIpCtrl属性描述

UI名称

描述

TcpIpIpF ramePrioDefault

取值范围

0 .. 7

默 | 认 | 取 | 值 |

0

参数描述

Specifies the default value for the priority for all outgoing frames.

Note: the value can be changed for each socket individually via TcpIp_Cha ngeParameter() service. If this optional parameter is not available, 0 is used as default priority.

依赖关系

Tc pIpEthIfCtrlRef

取值范围

Symbolic name reference to [ E thIfController ]

默认 取值

参数描述

Reference to EthIf controller where the IP address shall be assigned.

依赖关系

关联到EthIf 中的Controller

TcpIpCtrlDemEve ntParameterRefs

取值范围

默认 取值

参数描述

This container is a subcontainer of TcpIpCtrl and specifies the references to Dem EventParameter elements which shall be invoked using the API Dem_Rep ortErrorStatus API in case the corresponding TcpIp error occurs for communication on the EthIf Controller.

依赖关系

DEM报错功能不 支持,配置工具 上限制不能添加

Tc pIpArpConfigRef

取值范围

Reference to [ TcpIpArpConfig ]

默 | 认 | 取 | 值 |

无 |



参数描述

Reference to ARP configuration for this IPv4 inst ance.(Multiple IPv4 instances may use the same configuration container but will operate independently)

依赖关系

依赖 于TcpIpArpConf ig配置项的添加

TcpIp AutoIpConfigRef

取值范围

Reference to [TcpI pAutoIpConfig]

默 | 认 | 取 | 值 |

无 |



参数描述

Reference to AutoIp configuration for this IPv4 inst ance.(Multiple IPv4 instances may use the same configuration container but will operate independently)

依赖关系

依赖于T cpIpAutoIpConf ig配置项的添加

Tcp IpDhcpConfigRef

取值范围

Reference to [Tc pIpDhcpConfig]

默 | 认 | 取 | 值 |

无 |



参数描述

Reference to DHCP configuration for this IPv4 inst ance.(Multiple IPv4 instances may use the same configuration container but will operate independently)

依赖关系

依赖于 TcpIpDhcpConf ig配置项的添加

TcpIpFragmen tationConfigRef

取值范围

Reference to [TcpIpIpFragme ntationConfig]

默认 取值

参数描述

Reference to Fragmentation configuration for this IPv4 instance.

(Multiple IPv4 instances may use the same configuration container but will operate independently)

依赖关系

依 赖于TcpIpIpFra gmentationConf ig配置项的添加

TcpIpIpV4Config

image13

图5-4 TcpIpV4Config容器配置图

表5‑4 TcpIpV4Config属性描述

UI 名称

描述

Tcp IpArpN umGrat uitous ARPonS tartup

取值范围

0 .. 255

默 | 认 | 取 | 值 |



1

参数描述

Specifies the number of gratuitous ARP replies which shall be sent on

assignment of a new IP address.

依赖关系

依赖于TcpIpArpEna bled使能。根据LwIP实现 ,固定为1次,不可改。

Tc pIpArp Packet QueueE nabled

取值范围

TRUE/FALSE

默认 取值

F ALSE

参数描述

Enables (TRUE) or disables (FALSE) support of the ARP Packet Queue according to IETF RFC 1122, section 2.3.2.2.

依赖关系

依赖于 TcpIpArpEnabled使能。

T cpIpAr pTable EntryT imeout

取值范围

0 .. INF

默认 取值

300

参数描述

Timeout in seconds after which an unused ARP entry is removed.

依赖关系

依赖于 TcpIpArpEnabled使能。

Tc pIpArp TableS izeMax

取值范围

0 .. 65535

默认 取值

10

参数描述

Maximum number of entries in the ARP table.

依赖关系

依赖于 TcpIpArpEnabled使能。

ArpNe tworkA ddress

取值范围

MAC地址(string类型)

默认 取值

参数描述

MAC address :xx-xx-xx-xx-xx-xx

依赖关系

依赖于Tcp IpArpStaticEnabled使能

ArpIpA ddress

取值范围

IP地址(string类型)

默认 取值

参数描述

Ip a ddress:xxx.xxx.xxx.xxx

依赖关系

依赖于Tcp IpArpStaticEnabled使能

TcpI pAutoI pInitT imeout

取值范围

0 .. INF

默认 取值

参数描述

The time in seconds Auto-IP waits at startup, before beginning with ARP probing. This delay is used to give DHCP time to acquire a lease in case a DHCP server is present.

依赖关系

依赖于TcpIpAutoIpEnab led使能。AUTOSAR配置的 时间,与LwIP中配置的尝 试DHCP获取IP的次数存在 转化关系,具体参考前面 Auto-IP功能实现描述。

TcpIpI cmpTtl

取值范围

0 .. 255

默认 取值

10

参数描述

Default Time-to-live value of outgoing ICMP packets.

依赖关系

依赖于 TcpIpIcmpEnabled使能。

TcpIp IpFrag mentat ionRxE nabled

取值范围

TRUE/FALSE

默认 取值

F ALSE

参数描述

Enables (TRUE) or disables (FALSE) support for reassembling of incoming datagrams that are fragmented according to IETF RFC 815 (IP Datagram Reassembly Algorithms).

依赖关系

T cpIpIp NumFra gments

取值范围

0 .. 255

默认 取值

0

参数描述

Specifies the maximum number of IP fragments per datagram.Note: this parameter is only relevant if TcpIpIp FragmentationRxEnabled is

TRUE.

依赖关系

依赖于TcpIpIpFragme ntationRxEnabled使能。

Tcp IpIpNu mReass Dgrams

取值范围

0 .. 65535

默认 取值

3

参数描述

Specifies the maximum number of fragmented IP datagrams that can be reassembled in parallel. Note: this parameter is only relevant if TcpIpIp FragmentationRxEnabled is TRUE.

依赖关系

依赖于TcpIpIpFragme ntationRxEnabled使能。

T cpIpIp ReassT imeout

取值范围

0 .. INF

默认 取值

60

参数描述

Specifies the timeout in [s] after which an incomplete datagram gets discarded. Note: this parameter is only relevant if TcpIpIp FragmentationRxEnabled is TRUE.

依赖关系

依赖于TcpIpIpFragme ntationRxEnabled使能。

TcpIpLocalAddr

image14

图5-5 TcpIpLocalAddr容器配置图

表5‑5 TcpIpLocalAddr属性描述

UI名称

描述

TcpIpAddrId

取值范围

0 .. 65535

默 | 认 | 取 | 值 |

无 |



参数描述

IP address table identifier assigned by TCP/IP stack.

依赖关系

工具 自动生成( 从0开始自 动排序)。

TcpI pAddressType

取值范围

TCPIP_MUL TICAST/TCP IP_UNICAST

默 | 认 | 取 | 值 |










T C P I P _ U N I C A S T

参数描述

Address type.

依赖关系

默认TCP IP_UNICAST

Tcp IpDomainType

取值范围

TCP IP_AF_INET

TCPI P_AF_INET6

默 | 认 | 取 | 值 |










T C P I P _ A F _ I N E T

参数描述

Address family.

依赖关系

默认 TCPIP_AF_ INET,不可 改(暂不支 持IPv6)。

TcpIpCtrlRef

取值范围

Reference to [ TcpIpCtrl ]

默 | 认 | 取 | 值 |

参数描述

Reference to a TcpIpCtrl specifying the EthIf Controller where the IP address shall be assigned and DEM errors that shall be reported in case of an error on this c ontroller.

依赖关系

TcpIpAssign mentLifetime

取值范围

TC PIP_FORGET

T CPIP_STORE

默 | 认 | 取 | 值 |









T C P I P _ F O R G E T

参数描述

Defines the lifetime of a d ynamically fetched IP address. If T cpIpAssign mentMethod = TC PIP_STATIC then Tcp IpAssignme ntLifetime shall be omitted.

依赖关系

目前 不支持永久 IP分配,只 支持TCPIP_ FORGET模式

TcpIpAssi gnmentMethod

取值范围

TCPIP_DHCP

TCPIP_I PV6_ROUTER (不支持)

TCPIP _LINKLOCAL

TCPIP_LINK LOCAL_DOIP

TC PIP_STATIC

默 | 认 | 取 | 值 |











无 |













参数描述

Method of address assignment

依赖关系

分配方式 的选择依赖 于TcpIpAut oIpEnabled 、TcpIpDhc pClientEna bled使能。 当TcpIpAdd ressType为 TCPIP_MULT ICAST时,T cpIpAssign mentMethod 中限定为TC PIP_STATIC

TcpIpAssign mentPriority

取值范围

1 .. 3

默 | 认 | 取 | 值 |

无 |



参数描述

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.

依赖关系

当 某TcpIpLoc alAddr配置 了多个Tcp IpAddrAssi gnment(目 前不支持) 获取IP方式 时,该参数 才有效。基 于目前功能 实现,不支 持,配置界 面固定为1 ,不可改。

TcpIpAssig nmentTrigger

取值范围

TCPIP _AUTOMATIC

TC PIP_MANUAL

默 | 认 | 取 | 值 |


无 |




参数描述

Trigger of address a ssignment.

依赖关系

TcpIpD efaultRouter

取值范围

IP网 关地址(st ring类型)

默 | 认 | 取 | 值 |

无 |



参数描述

IP address of default router (gateway)

依赖关系

TcpIpNetmask

取值范围

0 .. 128

默 | 认 | 取 | 值 |

无 |



参数描述

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 s ignificant bits defining the network number or prefix of an IP address.

依赖关系

根据Tcp IpDomainTy pe决定范围

TcpIpSta ticIpAddress

取值范围

IP地址(st ring类型)

默 | 认 | 取 | 值 |

无 |



参数描述

Static IP Address. To specify any IP address for a certain EthIfCtrl, “ANY” has to be set as wildcard. See Tc pIp_Bind() for more details.

依赖关系

当 IP分配方式 配置成TCPI P_STATIC方 式,触发方 式配置成T CPIP_AUTOM ATIC时,该 项必须配置 (其所在的 Container TcpIpSta ticIpAddre ssConfig必 须配置)。

TcpIpSocketOwnerConfig

image15

图5-6 TcpIpSocketOwnerConfig容器配置图

表5‑6 TcpIpSocketOwnerConfig属性描述

UI 名称

描述

TcpIpS ocketO wnerCo pyTxDa taName

取值范围

上层 模块接口名( string类型)

默 | 认 | 取 | 值 |












S o A d _ C o p y T x D a t a

参数描述

This parameter defines the name of the <Up _CopyTxData> function of the TcpI pSocketOwner module. The function name shall only be configurable if TcpIpS ocketOwnerUp perLayerType is set to CDD.

依赖关系

依赖于 TcpIpSocketO wnerUpperLay erType(默认 为SoAd模块)

TcpIpS ocketO wnerHe aderFi leName

取值范围

上层 模块接口名( string类型)

默 | 认 | 取 | 值 |


SoAd_Cbk.h

参数描述

This parameter specifies the name of the header file containing the definition of the TcpI pSocketOwner module functions. The header file name shall only be configurable if TcpIpS ocketOwnerUp perLayerType is set to CDD.

依赖关系

依 赖于TcpIpSoc ketOwnerUppe rLayerType( 默认为SoAd模 块),不支持 配置多套SoAd

Tc pIpSoc ketOwn erLoca lIpAdd rAssig nmentC hgName

取值范围

上层 模块接口名( string类型)

默 | 认 | 取 | 值 |


























S o A d _ L o c a l I p A d d r A s s i g n m e n t C h g

参数描述

This parameter defines the name of the <Up_L ocalIpAddrAs signmentChg> function of the TcpI pSocketOwner module. The function name shall only be configurable if TcpIpS ocketOwnerUp perLayerType is set to CDD.

依赖关系

依赖于 TcpIpSocketO wnerUpperLay erType(默认 为SoAd模块)

Tc pIpSoc ketOwn erRxIn dicati onName

取值范围

上层 模块接口名( string类型)

默 | 认 | 取 | 值 |



SoAd_ RxIndication

参数描述

This parameter defines the name of the <Up_R xIndication> function of the TcpI pSocketOwner module. The function name shall only be configurable if TcpIpS ocketOwnerUp perLayerType is set to CDD.

依赖关系

依赖于 TcpIpSocketO wnerUpperLay erType(默认 为SoAd模块)

T cpIpSo cketOw nerTcp Accept edName

取值范围

上层 模块接口名( string类型)

默 | 认 | 取 | 值 |













S o A d _ T c p A c c e p t e d

参数描述

This parameter defines the name of the <Up_ TcpAccepted> function of the TcpI pSocketOwner module. The function name shall only be configurable if TcpIpS ocketOwnerUp perLayerType is set to CDD.

依赖关系

依赖于 TcpIpSocketO wnerUpperLay erType(默认 为SoAd模块)

Tc pIpSoc ketOwn erTcpC onnect edName

取值范围

上层 模块接口名( string类型)

默 | 认 | 取 | 值 |














S o A d _ T c p C o n n e c t e d

参数描述

This parameter defines the name of the <Up_T cpConnected> function of the TcpI pSocketOwner module. The function name shall only be configurable if TcpIpS ocketOwnerUp perLayerType is set to CDD.

依赖关系

依赖于 TcpIpSocketO wnerUpperLay erType(默认 为SoAd模块)

TcpIpS ocketO wnerTc pIpEve ntName

取值范围

上层 模块接口名( string类型)

默 | 认 | 取 | 值 |












S o A d _ T c p I p E v e n t

参数描述

This parameter defines the name of the <Up _TcpIpEvent> function of the TcpI pSocketOwner module. The function name shall only be configurable if TcpIpS ocketOwnerUp perLayerType is set to CDD.

依赖关系

依赖于 TcpIpSocketO wnerUpperLay erType(默认 为SoAd模块)

TcpI pSocke tOwner TxConf irmati onName

取值范围

上层 模块接口名( string类型)

默 | 认 | 取 | 值 |
















S o A d _ T x C o n f i r m a t i o n

参数描述

This parameter defines the name of the <Up_TxC onfirmation> function of the TcpI pSocketOwner module. The function name shall only be configurable if TcpIpS ocketOwnerUp perLayerType is set to CDD.

依赖关系

依赖于 TcpIpSocketO wnerUpperLay erType(默认 为SoAd模块)

TcpIpS ocketO wnerUp perLay erType

取值范围

CDD

SOAD

默 | 认 | 取 | 值 |


S O A D

参数描述

This parameter specifies the type of the upper layer module.

依赖关系

TcpIpTcpConfig

image16

图5-7 TcpIpTcpConfig容器配置图

表5‑7 TcpIpTcpConfig属性描述

UI名称

描述

Tc pIpTcpCongestion AvoidanceEnabled

取值范围

T RUE/FALSE

默认 取值

TRUE

参数描述

Enables (TRUE) or disables (FALSE) support of TCP c ongestion avoidance algorithm according to IETF RFC 5681.

依赖关系

因 LwIP代码 固定实现 拥塞避免 功能,配 置界面固 定为TRUE ,不可改。

TcpIpTcpFas tRecoveryEnabled

取值范围

T RUE/FALSE

默认 取值

TRUE

参数描述

Enables (TRUE) or disables (FALSE) support of TCP Fast Recovery according to IETF RFC 5681.

依赖关系

因 LwIP代码 固定实现 快速恢复 功能,配 置界面固 定为TRUE ,不可改。

TcpIpTcpFastR etransmitEnabled

取值范围

T RUE/FALSE

默认 取值

TRUE

参数描述

Enables (TRUE) or disables (FALSE) support of TCP Fast Retra nsmission according to IETF RFC 5681.

依赖关系

因 LwIP代码 固定实现 快速重传 功能,配 置界面固 定为TRUE ,不可改。

TcpIp FastTxTcpEnabled

取值范围

T RUE/FALSE

默认 取值

FALSE

参数描述

Enabl e/Disable the fast tra nsmission of TCP data.

依赖关系

集成DoI P默认使能

TcpIpTc pFinWait2Timeout

取值范围

0 .. INF

默认 取值

20

参数描述

Timeout in [s] to receive a FIN from the remote node (after this node has initiated c onnection term ination), i.e. maximum time waiting in FINWAIT-2 for a c onnection te rmination request from the remote TCP.

依赖关系

客户端 发送FIN并 收到服务 端ACK后进 入FIN_WAI T_2状态, 在该状态 下等待服 务器端发 送FIN的时 间。对应 LwIP代码 中宏TCP_ FIN_WAIT_ TIMEOUT。

TcpIpTcp KeepAliveEnabled

取值范围

T RUE/FALSE

默认 取值

参数描述

Enables (TRUE) or disables (FALSE) TCP Keep Alive Probes according to IETF RFC 1122 chapter 4.2.3.6

依赖关系

对 应LwIP代 码中宏LW IP_TCP_KE EPALIVE。

TcpIpTcpK eepAliveInterval

取值范围

0 .. INF

默认 取值

参数描述

Specifies the interval in [s] between s ubsequent keepalive probes.

依赖关系

依 赖于TcpIp TcpKeepAl iveEnable d的使能。

TcpIpTcpKe epAliveProbesMax

取值范围

0 .. 65535

默认 取值

参数描述

Maximum number of times that a TCP Keep Alive is retr ansmitted before the c onnection is closed.

依赖关系

依 赖于TcpIp TcpKeepAl iveEnable d的使能。

TcpIp TcpKeepAliveTime

取值范围

0 .. INF

默认 取值

7200

参数描述

Maximum number of times that a TCP Keep Alive is retr ansmitted before the c onnection is closed.

依赖关系

依 赖于TcpIp TcpKeepAl iveEnable d的使能。

TcpIpTcpMaxRtx

取值范围

0 .. 25 5(lwip中 限定最大 值为12)

默认 取值

参数描述

Maximum number of times that a TCP segment is retr ansmitted before the TCP c onnection is closed. This parameter is only valid if Tc pIpTcpRet ransmissi onTimeout is co nfigured. Note: This parameter also applies for FIN retrans missions.

依赖关系

依赖于T cpIpTcpRe transmiss ionTimeou t的使能。

TcpIpTcpMsl

取值范围

0 .. INF

默认 取值

参数描述

Maximum segment lifetime in [s]. (Note: TIME-WAIT = 2 x Tc pIpTcpMsl to ensure that the remote node received the ackno wledgment to its c onnection te rmination request.)

依赖关系

对应LwI P配置项: TCP_MSL。

客户 端从FIN_W AIT_2状态 收到服务 端的FIN并 返回ACK后 切换到TI ME_WAIT状 态,在该 状态下需 要等待2× MSL时间才 能切换到 CLOSED状 态(这样 可以保证 最后ACK丢 失的情况 下重新发 送ACK)。

TcpI pTcpNagleEnabled

取值范围

T RUE/FALSE

默认 取值

TRUE

参数描述

Enables (TRUE) or disables (FALSE) support of Nagle algorithm according to IETF RFC 896. If enabled the Nagle algorithm is activated per default for all TCP sockets, but can be de activated via TcpIp _ChangePa rameter() API.

依赖关系

LwI P固定实现 糊涂窗口 避免功能 ,配置工 具上默认 为TRUE, 不可改。

TcpIpTcp ReceiveWindowMax

取值范围

0 .. 65535

默认 取值

参数描述

Default value of maximum receive window in bytes.

依赖关系

接 收窗口的 最大值,L wIP中通过 宏TCP_WND 实现TCP收 发窗口大 小的配置 (AUTOSA R标准中没 有发送窗 口大小的 配置)。

TcpIpTcpRetra nsmissionTimeout

取值范围

0.001 .. INF

默认 取值

参数描述

Timeout in [s] before an unack nowledged TCP segment is sent again. If the timeout is disabled or set to INF, no TCP segments shall be retra nsmitted.

依赖关系

与 TcpIpTcpM axRtx一起 共同实现 TCP超时重 传功能。

TcpIpTcp SlowStartEnabled

取值范围

T RUE/FALSE

默认 取值

TRUE

参数描述

Enables (TRUE) or disables (FALSE) support of TCP slow start algorithm according to IETF RFC 5681.

依赖关系

LwIP代码 固定实现 慢启动功 能,配置 界面固定 为TRUE, 不可改。

T cpIpTcpSynMaxRtx

取值范围

0 .. 25 5(lwip中 限定最大 值为12)

默认 取值

参数描述

Maximum number of times that a TCP SYN is retra nsmitted. Note: SYN will be retried after Tcp IpTcpRetr ansmissio nTimeout. The c onnection will be dropped if no matching c onnection request has been received after the last TCP SYN has been sent and Tc pIpTcpRet ransmissi onTimeout has been expired.

依赖关系

依赖于T cpIpTcpRe transmiss ionTimeou t的使能。

TcpIpTcpSy nReceivedTimeout

取值范围

0 .. INF

默认 取值

20

参数描述

Timeout in [s] to complete a remotely initiated TCP c onnection estab lishment, i.e. maximum time waiting in SYN -RECEIVED for a c onfirming c onnection request ackno wledgment after having both received and sent a c onnection request.

依赖关系

服务端 收到SYN后 ,回复SY N/ACK,进 入到SYN_R CVD状态, 在该状态 等待客户 端回复AC K的时间。

对应 LwIP代码 中宏TCP_ SYN_RCVD_ TIMEOUT。

TcpIpTcpTtl

取值范围

0 .. 255

默 | 认 | 取 | 值 |

无 |



参数描述

Default Tim e-to-live value of outgoing TCP packets.

依赖关系

TcpIpUdpConfig

image17

图5-8 TcpIpUdpConfig容器配置图

表5‑8 TcpIpUdpConfig属性描述

UI名称

描述

TcpIpUdpTtl

取值范围

0 .. 255

默认取值

参数描述

Default T ime-to-live value of outgoing UDP packets.

依赖关系