COMMUNICATION DEVICE

DE102025101007A1Pending Publication Date: 2025-07-24DENSO CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
DE102025101007
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-19
Filing Date
2025-01-14
Publication Date
2025-07-24

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A communication device includes: a lower-layer protocol processing unit (51) that executes, in hardware, processing of a lower-layer protocol including a data link layer; an upper-layer protocol processing unit (54) that executes, in software, processing of an upper-layer protocol that uses the lower-layer protocol; an offload processing unit (53) that executes, in hardware, part or all of the upper-layer protocol; and a receive offload filter (52) that refers to protocol assignment information included in a receive frame and assigns the receive frame to a first receive path that does not use the offload processing unit or a second receive path that uses the offload processing unit according to a predetermined assignment rule.The protocol assignment information specifies (i) a type of upper layer protocol or (ii) a type or characteristics of data to be processed by the upper layer protocol.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The present invention relates to a communication device that uses a plurality of different communication protocols.

[0002] JP 2018 - 196 140 A discloses an offload technology in which communication paths are switched using Quality of Service (QoS) tag information at the time of reception as traffic characteristics.

[0003] When performing offloading, a process running in software can be switched to running in hardware instead of switching the communication path. For example, if a communication protocol for high-bandwidth communication is implemented in software, the software process consumes a large amount of CPU resources. If the CPU resources allocated to protocol processing are insufficient, this may result in a limitation of the communication speed. Therefore, offloading can be considered for this type of communication protocol. However, it is difficult to implement all the complex controls of the communication protocol implemented in software using hardware configuration.

[0004] According to one aspect of the present invention, a technique for reducing the processing load of a software-based communication protocol is provided.

[0005] One aspect of the present invention provides a communication device. The communication device includes a lower-layer protocol processing unit, an upper-layer protocol processing unit, an offload processing unit, and a receive offload filter.

[0006] The lower-layer protocol processing unit executes the processing of a lower-layer protocol (lower-layer protocol) in hardware. The lower-layer protocol is a communication protocol with a data link layer. The upper-layer protocol processing unit executes the processing of an upper-layer protocol (upper-layer protocol) in software. The upper-layer protocol is a communication protocol of an upper layer that uses the lower-layer protocol. The offload processing unit executes part or all of the upper-layer protocol in hardware instead of the upper-layer protocol processing unit.The receive offload filter refers to protocol assignment information included in a receive frame (receive frame) received by the lower-layer protocol processing unit, and assigns the receive frame to a first receive path that does not use the offload processing unit or a second receive path that uses the offload processing unit according to a predetermined assignment rule. The protocol assignment information is information included in the receive frame that indicates a type of upper-layer protocol and / or a type or characteristics of data to be processed by the upper-layer protocol.

[0007] With the above configuration, it is possible to select and execute appropriate offload processing for each type of upper-layer protocol or for each type or characteristic of data processed by the upper-layer protocol. As a result, the processing load required for software processing of the upper-layer protocol can be appropriately reduced.

[0008] The objects, features and advantages of the present invention will become apparent from the following detailed description made with reference to the accompanying drawings. Fig. 1 is a block diagram showing the configuration of an in-vehicle system; Fig. 2 is a block diagram showing a functional configuration of a first communication processing unit; Fig. 3 is a diagram showing a configuration example of an Ethernet frame and an operation example of PCP; Fig. 4 is a diagram showing configurations of an IP header (header), a UDP header, and a TCP header; Fig. 5 is a diagram showing an example of setting a mapping rule using PCP; Fig. 6 is a diagram showing a configuration example of a UDP frame and an operation example of a UDP port; Fig. 7 is a diagram showing an example of setting a mapping rule using the UDP port number; Fig. Figure 8 is a diagram showing the configuration of a SOME / IP frame; Fig. 9 is a diagram showing a configuration example of a SOME / IP-SD packet and characteristic information of transmission and reception data; Fig. 10 is a diagram showing an example of defining mapping rules using characteristic information of transmit and receive data; and Fig. 11 a diagram showing a configuration of the AVTP frame and an excerpt from the definition of a subtype.

[0009] Embodiments of the present invention will now be described with reference to the drawings. (1. Overall configuration)

[0010] One in Fig. The in-vehicle system 1 shown in Figure 1 includes a central electronic control unit (hereinafter referred to as central ECU) 2, a plurality of zone ECUs 3, and an in-vehicle communication network 4. ECU is an abbreviation for electronic control unit.

[0011] The central ECU 2 controls the zone ECUs 3 and performs coordinated control of the entire vehicle. The central ECU 2 includes a switching hub 21, a first communication processing unit 22, a second communication processing unit 23, and a memory 24. The central ECU 2 can be configured entirely or partially by an SoC. SoC is an abbreviation for System on a Chip.

[0012] The switching hub 21 has multiple ports. The in-vehicle communication network 4 includes communication lines (hereinafter referred to as Ethernet transmission lines) 41, and the Ethernet transmission lines 41 are connected to the ports of the switching hub 21. The Ethernet transmission lines 41 form a star-shaped network with the switching hub 21 as the center. Each Ethernet transmission line 41 is connected to one or more zone ECUs 3. When multiple zone ECUs 3 are connected to one port, the Ethernet transmission line 41 can be branched by connecting a switching hub 43, and a zone ECU 3 can be connected to each of the branched Ethernet transmission lines 411. In each Ethernet transmission line 41 and 411, communication is performed according to the Ethernet protocol. Ethernet is a registered trademark.The switching hub 21 performs a process of allocating a destination of an Ethernet frame according to a MAC address of the Ethernet frame.

[0013] The first communication processing unit 22 processes a reception frame received via the switching hub 21 and destined for the central ECU 2. Details of the first communication processing unit 22 will be described in detail later.

[0014] The second communication processing unit 23 contains several CAN transceivers, each of which is individually connected to a CAN bus 42. The CAN bus 42 is integrated into the vehicle's internal communication network 4. CAN is an abbreviation for Controller Area Network. CAN is a registered trademark. One or more zone ECUs 3 are connected to each CAN bus 42, which perform data communication via the CAN bus 42. Communication occurs according to the CAN protocol on the CAN bus 42. The second communication processing unit 23 forwards the CAN frames sent and received via the CAN bus 42 and processes the data extracted from the CAN frames.

[0015] The first communication processing unit 22 and the second communication processing unit 23 each execute a protocol conversion process for converting an Ethernet frame into a CAN frame and for converting a CAN frame into an Ethernet frame.

[0016] The zone ECU 3 connected to the Ethernet transmission line 41, 411 has the same functions as the first communication processing unit 22, except for the protocol conversion function. The zone ECU 3 connected to the CAN bus 42 includes a CAN transceiver and has the same functions as the second communication processing unit 23, except for the protocol conversion function and the forwarding function for forwarding or switching a frame to the CAN bus 42. (2. First communication processing unit)

[0017] As in Fig. 2, the first communication processing unit 22 includes a circuit unit 221 and a core unit 222.

[0018] The circuit unit 221 is composed of hardware circuits or integrated circuits and includes, as functional blocks implemented by the hardware circuits, a lower-layer protocol processing unit 51, a receive offload filter 52, and an offload processing unit 53.

[0019] The core unit 222 includes a central processing unit (CPU), a read-only memory (ROM), a random access memory (RAM), and the like. Various functions of the core unit 222 are implemented by the CPU, which executes a program stored in a non-volatile physical storage medium. For example, the ROM corresponds to the non-volatile physical storage medium on which the program is stored. Executing the program executes a process corresponding to the program.

[0020] The core unit 222 includes an upper-layer protocol processing unit 54, a transmission offload filter 55, and an application processing unit 56 as functional blocks implemented by the CPU, which executes a program stored in ROM. The application is also referred to as an app.

[0021] The operation of each of the functional blocks 51 to 56 included in the first communication processing unit 22 will be described separately for the receiving process and the transmitting process. The communication protocol used by the lower-layer protocol processing unit 51 is called the lower-layer protocol, and the communication protocol used by the upper-layer protocol processing unit 54 is called the upper-layer protocol. The upper-layer protocol is a communication protocol used in the upper layer and utilizes the lower-layer protocol. The lower-layer protocol is a protocol corresponding to the second layer of the OSI reference model (i.e., the data link layer), and the upper-layer protocol is a protocol corresponding to the third or higher layer of the OSI reference model.

[0022] The operation of the first communication processing unit 22 during the receiving process will be described.

[0023] The lower-layer protocol processing unit 51 receives a communication frame (hereinafter referred to as a receive frame) addressed to the central ECU 2 via the switching hub 21. The lower-layer protocol processing unit 51 executes a process using the header information (i.e., PCI) included in the receive frame (i.e., PDU of the lower-layer protocol). PDU is an abbreviation for Protocol Data Unit. PCI is an abbreviation for Protocol Control Information. The actual information included in the PDU along with the PCI and passed to the upper-layer protocol is referred to as SDU. SDU is an abbreviation for Service Data Unit.

[0024] If the lower-layer protocol is an Ethernet protocol, the lower-layer protocol processing unit 51 may perform an error detection process using FCS and provide the receive frame in which no error was detected to the receive offload filter 52. FCS is an abbreviation for "Frame Check Sequence."

[0025] The receive offload filter 52 refers to the protocol allocation information included in the PDU of the lower layer protocol (hereinafter referred to as lower layer PDU) and selects the receive path to be used when providing data to the upper layer protocol processing unit 54 according to a pre-set allocation rule 521.

[0026] Protocol mapping information is information that can identify the type of upper-layer protocol, the type and characteristics of the data to be processed by the upper-layer protocol, and so on.

[0027] The reception paths include a first reception path R1 and one or more second reception paths R2. The first reception path R1 is a path that forwards the SDU (i.e., the PDU of the upper layer protocol) included in the lower layer PDU to the upper-layer protocol processing unit 54 without passing through the offload processing unit 53. In this case, the upper-layer protocol processing unit 54 executes the entire process of the upper-layer protocol in software. The second reception path R2 is a path that delivers the PDU of the upper-layer protocol to the upper-layer protocol processing unit 54 via the offload processing unit 53. In this case, the upper-layer protocol processing unit 54 executes processes other than those executed by the offload processing unit 53 among the processes of the upper-layer protocol.

[0028] The mapping rule 521 is information that maps a value of the protocol mapping information to a receiving path to be selected. The mapping rules 521 can be set to a fixed value or configured so that the settings can be changed according to an instruction from a user application (e.g., a rule setting application 561) executed by the application processing unit 56.

[0029] The offload processing unit 53 includes processing units whose number corresponds to the number of second receive paths R2. In the present embodiment, the offload processing unit 53 includes a first processing unit 531, a second processing unit 532, and a third processing unit 533.

[0030] The first processing unit 531 processes, in hardware, a portion of the upper-layer protocol used by the upper-layer protocol processing unit 54 and outputs a processing result along with the PDU of the upper-layer protocol to the upper-layer protocol processing unit 54. Hereinafter, for the sake of distinction, the processing in the first processing unit 531 is referred to as partial offload A, and the second reception path R2 using the first processing unit 531 is also referred to as R21.

[0031] The second processing unit 532 processes, in hardware, a portion of the upper-layer protocol that differs at least partially from the processing target of the first processing unit 531. The second processing unit 532 outputs a processing result along with the PDU of the upper-layer protocol to the upper-layer protocol processing unit 54. Hereinafter, the processing in the second processing unit 532 is referred to as partial offload B for differentiation, and the second reception path R2 using the second processing unit 532 is also referred to as R22.

[0032] The third processing unit 533 executes the entire process of the upper-layer protocol in hardware and outputs a processing result to the application processing unit 56. The application processing unit includes a user application or the like that performs communication using the upper-layer protocol. Hereinafter, the process executed by the third processing unit 533 is also referred to as full offload, and the second reception path R2 using the third processing unit 533 is also referred to as R23.

[0033] The upper-layer protocol processing unit 54 implements the upper-layer protocol using the upper-layer protocol PDU and the processing result obtained from the offload processing unit 53. The upper-layer protocol PDU and the processing results are input via the first reception path R1 or the second reception path R21, R22. The upper-layer protocol processing unit 54 outputs the upper-layer protocol SDU to the application processing unit 56.

[0034] The transmit offload filter 55 is not used in the receive process because it passes or goes through the transmit offload filter 55.

[0035] The operation of the first communication processing unit 22 in the sending process is described below.

[0036] The application processing unit 56, which performs communication with the upper-layer protocol, issues a transmission request to the transmission offload filter 55. The transmission request contains information required to generate an upper-layer PDU. The transmission request contains information required to generate a transmission frame to be transmitted by the lower-layer protocol processing unit 51 in response to the transmission request. Specifically, in addition to the upper-layer protocol SDU, various information for generating the upper-layer protocol PCI and the lower-layer protocol PCI is included in the transmission request. This various information also includes protocol allocation information.

[0037] When the transmission request is input from the application processing unit 56, the transmission offload filter 55 refers to the protocol allocation information included in the transmission request and selects a transmission path to be used in transmitting an upper-layer PDU to the lower-layer protocol processing unit 51 according to a predetermined allocation rule 551.

[0038] Mapping rule 551 is information that links a value of the protocol mapping information to a transmission path to be selected. Mapping rule 551 has the same content as mapping rule 521 used in receive offload filter 52. Mapping rule 551 does not necessarily have to be identical to mapping rule 521 used in the receive offload filter.

[0039] The transmission paths include a first transmission path S1 and one or more second transmission paths S2. The first transmission path S1 is a path that delivers an upper-layer PDU (i.e., an SDU of the lower-layer protocol) to the lower-layer protocol processing unit 51 without passing through the offload processing unit 53. The second transmission path S2 is a path that delivers an upper-layer PDU to the lower-layer protocol processing unit 51 via the offload processing unit 53.

[0040] The first processing unit 531 outputs the processing result of the partial offload A (ie, hardware process) together with the processing result of the upper-layer protocol by the upper-layer protocol processing unit 54 (ie, software process) to the lower-layer protocol processing unit 51, except for the partial offload A. Hereinafter, the second transmission path S2 using the first processing unit 531 is also referred to as S21.

[0041] The second processing unit 532 outputs the processing result of the partial offload B (i.e., hardware processing) to the lower-layer protocol processing unit 51 along with the processing result of the upper-layer protocol of the upper-layer protocol processing unit 54 (i.e., software processing) other than the partial offload B. Hereinafter, the second transmission path S2 using the second processing unit 532 is also referred to as S22.

[0042] The third processing unit 533 outputs the result of the upper-layer protocol processing executed by the upper-layer protocol processing unit 54 to the lower-layer protocol processing unit 51. Hereinafter, the second transmission path S2 using the third processing unit 533 is also referred to as S23.

[0043] The lower-layer protocol processing unit 51 generates a lower-layer PDU using the upper-layer PDU supplied via the first transmission path S1 and the second transmission path S2 as a lower-layer SDU, and sends the generated lower-layer PDU to the Ethernet transmission line 41 associated with the destination MAC address via the switching hub 21. The lower-layer PDU generated by the lower-layer protocol processing unit 51 corresponds to an Ethernet frame.

[0044] The receive offload filter 52 is not used during transmission and is passed.

[0045] The application processing unit 56 may include a rule setting application 561 as one of the user applications. The rule setting application 561 acquires pre-transmission information required for setting the mapping rule 521, 551 through communication using the upper layer protocol and generates the mapping rule 521, 551 according to the pre-transmission information. The rule setting application 561 sets and updates the mapping rules 521, 551 to be used in the receive offload filter 52 and the transmit offload filter 55 using the generated mapping rules 521, 551. (3. Embodiments)(3.1 First Embodiment)

[0046] The following describes a case where UDP / IP and TCP / IP are used as upper-layer protocols and an Ethernet protocol is used as the lower-layer protocol, and the information contained in the Ethernet frame header is used as protocol assignment information. UDP is an abbreviation for User Datagram Protocol. TCP is an abbreviation for Transmission Control Protocol. IP is an abbreviation for Internet Protocol.

[0047] The Ethernet frame conforms to the DIX standard defined in IEEE 802.1Q. As described in Fig. As shown in Figure 3, an Ethernet frame contains a header, payload, and trailer. The header contains fields for specifying the destination MAC address, source MAC address, tag, type, and so on. The payload stores the upper-layer PDU. The trailer stores FCS. FCS is data added to check for errors in the payload.

[0048] The tag contained in the header has fields for setting TPID, PCP, CFI, and VID. TPID is an abbreviation for Tag Protocol Identifier. TPID is a tag protocol identifier, and a default value indicating a tagged Ethernet is set as TPID. PCP is an abbreviation for Priority Code Point. PCP indicates priority information. CFI is an abbreviation for Canonical Format Identifier. CFI stands for a canonical format identifier. VID is an abbreviation for VLAN Identifier. VID is an identifier for identifying a VLAN.

[0049] As in Fig. As shown in Figure 4, the IP header contains fields for setting Ver, Header Length, Service Type, Total Length, Identification Number, Flag, Fragment Offset, TTL (Time to Live), Protocol, Header Checksum, Source IP Address, Destination IP Address, and the like.

[0050] The UDP header contains fields for specifying the source and destination port numbers, data length, checksum, and the like.

[0051] The TCP header contains fields to specify source and destination port numbers, sequence number, acknowledgment number, reservation, code bit, window size, checksum, urgency pointer, option, etc.

[0052] Since the details of the individual fields in the IP header, UDP header and TCP header are known, a detailed description is omitted here.

[0053] In the first embodiment, PCP, contained in the tag of the Ethernet frame's header, is used as protocol assignment information. For example, a smaller PCP value indicates a higher priority.

[0054] An example of the use of PCP is in Fig. 3. For example, if the value of PCP is 1, it means that TCP / IP is used as the upper-layer protocol, and the protocol is used for a high-priority application. If the value of PCP is 2, it means that UDP / IP is used as the upper-layer protocol, and the protocol is used for a high-priority application. If the value of PCP is 3, it means that TCP / IP or UDP / IP is used as the upper-layer protocol, and the protocol is used for a low-priority application.

[0055] In the above case, the mapping rules 521, 551 used in the receive offload filter 52 and the transmit offload filter 55 are as in Fig. 5. The mapping rules 521, 551 are set such that when the value of PCP is 1, partial offload A is performed (i.e., the second receive path R21 or the second transmit path S21 is selected). When the value of PCP is 2, the mapping rule is set such that partial offload B is performed (i.e., the second receive path R22 or the second transmit path S22 is selected). When the value of PCP is 3, the mapping rule is configured such that no offload is performed (i.e., the first receive path R1 or the first transmit path S1 is selected).

[0056] For example, in partial offload A, the calculation of the sequence number, the confirmation number and the checksum in the TCP header can be performed using a hardware circuit.

[0057] In partial offload B, for example, the calculation of the checksum contained in the UDP header can be carried out using a hardware circuit. (3.2 Second embodiment)

[0058] The following describes a case where UDP / IP and TCP / IP are used as upper layer protocols, an Ethernet protocol is used as the lower layer protocol, and the protocol contained in the IP header is used as the protocol assignment information.

[0059] In the IP header, the protocol is information that indicates a higher-level protocol than the IP protocol. For example, if the value for protocol is 6, the protocol indicates the TCP protocol. If the value for protocol is 17, the protocol indicates the UDP protocol.

[0060] In this case, the allocation rules 521, 551 are set such that when the value of protocol is 6, partial offload A is executed, and when the value of protocol is 17, partial offload B is executed. The processing contents of partial offload A and partial offload B are similar to those of the first embodiment. (3.3 Third embodiment)

[0061] The following describes a case where UDP / IP and TCP / IP are used as upper layer protocols and an Ethernet protocol is used as the lower layer protocol, and the port number contained in the UDP header is used as protocol assignment information.

[0062] As in Fig. As shown in Figure 6, the UDP header contains fields that specify the source port number, the destination port number, the data length, and the checksum. Depending on the characteristics of the data, the UDP payload may contain an error detection code at the end of the data.

[0063] In a commonly used UDP protocol, port numbers are assigned according to the purpose and characteristics of the data being sent or received. ASIL is known as an index that represents the characteristics of the data being sent or received. ASIL is an abbreviation for Automotive Safety Integrity Level. ASIL is defined in the ISO 26262 standard for the functional safety of road vehicles and includes four classes: A, B, C, and D. Class A is the lowest safety integrity level, while Class D is the highest. A level below Class A is referred to as QM, and QM means that functional safety is not applied. QM is an abbreviation for Quality Management.

[0064] Fig. Figure 6 shows an example of port number usage using A-SIL in UDP.

[0065] Port number 50001 is used for sending and receiving image streams, and the ASIL class is assigned to QM. Port number 50002 is used for sending and receiving control commands, and the ASIL class is assigned to Class B. Port number 50003 is used for sending and receiving node monitoring frames, and the ASIL class is assigned to QM.

[0066] If the ASIL class is A to D, an error detection code is added to the data area to detect data errors. If the ASIL class is QM, no error detection code is added to the data area.

[0067] In the above case, as in Fig. As shown in Figure 7, the mapping rule is set so that if the port number is 50002, the offload is executed and if the port number is 50001 or 50003, the offload is not executed.

[0068] The offload processing unit 53 performs the calculation of the error detection code in hardware. In the case of processing on the receive path, the offload processing unit 53 can perform the process of comparing the calculation result of the error detection code with the error detection code added to the data area of the received data in hardware. (3.4 Fourth embodiment)

[0069] The following describes a case where UDP / IP or TCP / IP and SOME / IP running on top of UDP / IP or TCP / IP are used as upper-layer protocols, an Ethernet protocol is used as the lower-layer protocol, and information in the header of the SOME / IP frame is used as protocol mapping information. SOME / IP is an abbreviation for Scalable Service-Oriented Middleware over IP.

[0070] As in Fig. As shown in Figure 8, the SOME / IP frame contains fields for setting the message ID, length, request ID, protocol version, interface version, message version, and return code in the frame header.

[0071] The message ID contains a service ID that identifies a service and a procedure ID or an event ID that specifies which procedure or event of the service identified by the service ID the message refers to.

[0072] In the fourth embodiment, the service ID contained in the message ID of the SOME / IP packet is used as protocol assignment information. However, SOME / IP is a service-oriented communication, and the upper-layer protocol applied at a lower layer than SOME / IP cannot necessarily be uniquely identified based on the service ID alone.

[0073] Therefore, in the fourth embodiment, for each service ID, application information indicating the upper layer protocol associated with the service ID is transmitted in advance using SOME / IP-SD packets as characteristic information of the transmission or reception data to be used according to the service ID.

[0074] The SOME / IP SD package is a package used to search for available services and establish communication. SD is an abbreviation for Service Discovery. Instead of the Fig. The payload of the SOME / IP packet shown in Figure 8 contains the Fig. The SOME / IP-SD packet shown in Figure 9 contains fields for setting flags, reservations, entry array length, entry array length, optional array length, optional array, and the like. The characteristic information of the transmitted or received data is set in the optional array and then transmitted or received.

[0075] The rule setting application 561 generates the mapping rule 521, 551 using characteristic information about transmission or reception data received through a SOME / IP SD packet, and distributes the generated mapping rule to the receive offload filter 52 and the transmit offload filter 55. The receive offload filter 52 and the transmit offload filter 55 use the mapping rule 521, 551 distributed by the rule setting application 561 to implement offload processing based on the SOME / IP packet using the service ID.

[0076] The characteristic information of the transmitted or received data is defined for each service ID. The characteristic information of the transmitted or received data consists of 8 bits, for example, as shown in Fig. 9, and each bit is associated with an applicable upper-layer protocol used at a lower layer than SOME / IP. For example, bit 0 might be assigned to UDP, bit 1 to TCP, bit 2 to TLS 1.3, and bit 7 to a jumbo frame. When each bit has the value 1, it means that the protocol associated with the corresponding bit should be applied. When the value of each bit is 0, it means that the protocol associated with the corresponding bit should not be applied. TLS is an acronym for Transport Layer Security. TLS is a protocol for performing communication that requires security over computer networks such as the Internet. A jumbo frame is an Ethernet frame that has a payload of 1500 bytes or more.

[0077] Offload processing is assigned to each applicable protocol, and there are offloads A through D. Note that either UDP or TCP is selected exclusively. TLS and Jumbo Frame can be selected along with another protocol.

[0078] Fig. 10 shows an example of a mapping rule 521, 551 created using characteristic information of transmit or receive data.

[0079] For example, if the service ID is 0x0011, it means that Offload B is running in conjunction with TCP and Offload C is running in conjunction with TLS 1.3. If the service ID is 0x0012, it means no offload is running.

[0080] If the service ID is 0x0013, it means that only the offload D associated with the jumbo frame should be executed.

[0081] In the fourth embodiment, the SOME / IP-SD packet is used to transmit pre-transmission information, which is characteristic information of the transmitted or received data. The transmission of pre-transmission information is not limited to the use of a SOME / IP-SD packet. The pre-transmission information can be transmitted, for example, with a data flag sub-message used in DDS-RTPS, which operates over UDP / IP or TCP / IP. The header of the data flag sub-message contains a list of QoS parameters used to interpret the message, and the mapping rule 521, 551 can be specified based on this information. DDS is an abbreviation for Data Distribution Service. RTPS is an abbreviation for Real-Time Publish-Subscribe Wire Protocol. (3.5 Fifth Embodiment)

[0082] The following describes a case where AVTP is used as the upper-layer protocol and an Ethernet protocol is used as the lower-layer protocol, and the information contained in the AVTP frame header is used as protocol mapping information. AVTP is an abbreviation for AVB Transport Protocol. AVB is an abbreviation for Audio Video Bridging. AVTP is a standard defined under IEEE 1722 for transmitting and receiving high-quality, low-latency audio and video.

[0083] As in Fig. As shown in Figure 11, the header used when the AVTP frame is used for a stream and a control contains fields for setting the subtype, the header-dependent bit, the version, and the like.

[0084] The subtype specifies the type of data being sent or received and is as in Fig. 11 shown.

[0085] That is, a frame format and a header type are specified for each subtype. The mapping rule 521, 551 can be configured to change the content of the offload processing depending on the value of the subtype. Furthermore, Fig. 11 only a part of subtype shown. (4. Correspondence of the terms)

[0086] In the present disclosure, the central ECU 2 and the zone ECU 3 connected to the Ethernet transmission line 41, that is, the ECU having the first communication processing unit 22, correspond to a communication device. The control setting application 561 of the present invention corresponds to a control setting unit. (5. Effects)

[0087] The embodiment described above achieves the following effects.

[0088] (5a) The in-vehicle system 1 includes the receive offload filter 52 and the transmit offload filter 55, each of which refers to the protocol allocation information, and determines whether to proceed to offload processing and the type of offload processing according to the allocation rule 521, 551. The offload processing executes part or all of the upper-layer protocol in hardware. Therefore, it is possible to select and execute appropriate offload processing for each type of upper-layer protocol that can be identified from the protocol allocation information. Furthermore, it is possible to select and execute appropriate offload processing for each type or characteristic of data processed by the upper-layer protocol. As a result, the processing load required for software processing of the upper-layer protocol can be appropriately reduced.

[0089] (5b) The in-vehicle system 1 is configured to change the allocation rules 521, 551 using the rule setting application 561. Therefore, the offload processing can be flexibly optimized in response to various user applications that are arbitrarily added or changed.

[0090] (5c) As described in the first embodiment, when PCP included in the header area of the Ethernet frame is used as protocol assignment information, by appropriately associating the PCP with the upper layer protocol, offload processing according to the type of the protocol can be implemented in a layer above the Ethernet protocol.

[0091] (5d) As described in the second embodiment, when the protocol in the IP header is used as protocol allocation information, the offload processing can be executed according to the type of the protocol in a higher layer than the IP protocol defined in the protocol.

[0092] (5e) As described in the third embodiment, when the port number is used as protocol assignment information, the offload filter appropriately associates the port number with the type and characteristics of the data processed by the port. With this configuration, offload processing can be performed at a higher layer than UDP and TCP according to the type and characteristics of the data processed by the protocol.

[0093] (5f) As described in the fourth embodiment, when the service ID included in the message ID of SOME / IP is used as protocol assignment information, the service ID can be appropriately linked to the applicable upper layer protocol to perform offload processing according to the type of the upper layer protocol in a lower layer than SOME / IP.

[0094] (5g) As described in the fifth embodiment, when the subtype of the AVTP frame is used as protocol assignment information, the offload processing can be executed according to the frame format and the header type. (6. Other embodiments)

[0095] Although embodiments of the present invention have been described above, the present invention is not limited to the above-mentioned embodiments, and various changes may be made.

[0096] (6a) In the above embodiment, the rule setting application 561 is one of the user applications and sets the offload filtering rule. The offload filtering rule can also be set with a dedicated setting application.

[0097] (6b) In the above embodiments, multiple functions of one element can be implemented by multiple elements, or one function of one element can be implemented by multiple elements. Multiple functions of multiple elements can be implemented by one element, and one function provided by multiple elements can be implemented by one element. Part of the configuration of the above embodiments may be omitted as needed. At least some of the configurations of the above embodiments can be added to or replaced with the configurations of other embodiments.

[0098] (6c) In addition to the ECU as the communication device described above, the present invention can also be implemented in various forms, for example, as a system including the communication device as a component or as a method for allocating offload processing. QUOTES CONTAINED IN THE DESCRIPTION

[0000] This list of documents submitted by the applicant was generated automatically and is included solely for the convenience of the reader. This list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions. Cited patent literature

[0000] JP 2018 - 196 140 A

[0002]

Claims

[1] Communication device comprising: a lower layer protocol processing unit (51) that executes, in hardware, processing of a lower layer protocol, wherein the lower layer protocol is a communication protocol including a data link layer; an upper layer protocol processing unit (54) that executes, in software, processing of an upper layer protocol, the upper layer protocol using the lower layer protocol; an offload processing unit (53) that executes part or all of the upper layer protocol in hardware instead of the upper layer protocol processing unit; and a receive offload filter (52) which refers to protocol assignment information contained in a receive frame received by the lower-layer protocol processing unit and which assigns the receive frame to a first receive path that does not use the offload processing unit or to a second receive path that uses the offload processing unit according to a predetermined assignment rule, wherein the protocol assignment information is information included in the receive frame indicating (i) a type of the upper layer protocol and / or (ii) a type or characteristics of data to be processed by the upper layer protocol. [2] Communication device according to claim 1, wherein the lower layer protocol contains an Ethernet protocol, and a value in a Priority Code Point (PCP) field of an Ethernet frame header is used as protocol assignment information. [3] Communication device according to claim 1, wherein the upper layer protocol contains an Internet Protocol (IP), and a value in a protocol field of an IP header is used as protocol assignment information. [4] Communication device according to claim 1, wherein the upper layer protocol contains a User Datagram Protocol (UDP) or Transmission Control Protocol (TCP), and a value in a destination port number field in a UDP header or a value in a destination port number field in a TCP header is used as protocol mapping information. [5] Communication device according to claim 1, wherein the upper layer protocol contains a Scalable Service-Oriented Middleware over IP (SOME / IP), and a value in a service identification (ID) field of a SOME / IP header is used as protocol assignment information. [6] Communication device according to claim 1, wherein the upper layer protocol includes an Audio Video Bridging Transport Protocol (AVTP), and a value in a subtype field of an AVTP header is used as protocol assignment information. [7] Communication device according to one of claims 1 to 6, further comprising: a transmission offload filter (55) that refers to the protocol assignment information contained in a transmission frame and assigns transmission data contained in the transmission frame to a first transmission path that does not use the offload processing unit or to a second transmission path that uses the offload processing unit according to the assignment rule. [8] Communication device according to one of claims 1 to 7, further comprising: a rule setting unit (561) that sets the allocation rule based on pre-transmission information acquired using the upper layer protocol. [9] The communication device according to claim 8, wherein the rule setting unit obtains the pre-transmission information by using (i) a Scalable Service-Oriented Middleware over IP Service Discovery (SOME / IP-SD) packet or (ii) a Data Distribution Service Real-Time Publish-Subscribe Wire Protocol (DDS-RTPS) data flag sub-message.

Citation Information

Patent Citations

  • Coordinated packet data network change for selected internet protocol traffic offload

    JP2018196140A