Communication device

The communication device efficiently reduces software processing load by using hardware for lower and offload processing units, enabling flexible offload processing based on protocol type or data characteristics, addressing CPU resource constraints in communication protocols.

JP2025112496APending Publication Date: 2025-08-01DENSO CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024006752
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-19
Publication Date
2025-08-01

AI Technical Summary

Technical Problem

Implementing communication protocols in software consumes significant CPU resources, leading to constraints on communication speed, and it is challenging to offload complex protocol processing to hardware effectively.

Method used

A communication device comprising a lower protocol processing unit for hardware execution, an upper protocol processing unit for software execution, and an offload processing unit for hardware execution of part or all of the upper protocol, with a receive offload filter distributing frames based on protocol attachment information using preset rules.

Benefits of technology

This configuration allows for appropriate offload processing selection based on protocol type or data characteristics, reducing software processing load and optimizing offload processing flexibility for various applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025112496000001_ABST
    Figure 2025112496000001_ABST
Patent Text Reader

Abstract

To provide a technology that reduces the processing load of software-based communication protocols.SOLUTION: A lower protocol processing unit 51 executes processing of the lower protocol in hardware. An upper protocol processing unit 54 executes processing of the upper protocol in software. An offload processing unit 53 executes part or all of the upper protocol in hardware instead of the upper protocol processing unit 54. A reception offload filter 52 refers to protocol assignment information included in the received frame and distributes the received frame to a first reception route R1 that does not use an offload processing unit and a second reception route R2 that uses an offload processing unit according to a distribution rule. The protocol assignment information is information that indicates at least one of the type of upper protocol and the type or characteristics of data handled by the upper protocol.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a communication device using a plurality of communication protocols.

Background Art

[0002] The following Patent Document 1 describes a technique for realizing offloading by switching a communication path using QoS tag information at the time of reception as a traffic characteristic.

Prior Art Document

Patent Document

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] In addition to the method of switching a communication path, there is also a method of switching software processing to hardware processing for offloading. For example, when a communication protocol in high-bandwidth communication is implemented in software, it consumes a large amount of CPU resources. Then, if the CPU resources allocated to protocol processing are insufficient, it becomes a constraint on the communication speed. For this reason, it is conceivable to offload such a communication protocol. However, a problem has been found that it is difficult to implement all the complex controls of the communication protocol implemented in software in hardware.

[0005] One aspect of the present disclosure provides a technique for reducing the processing load of a communication protocol by software.

Means for Solving the Problems

[0006] One aspect of the present disclosure is a communication device, comprising a lower protocol processing unit (51), an upper protocol processing unit (54), an offload processing unit (53), and a receive offload filter (52).

[0007] The lower protocol processing unit executes, in hardware, the processing of a lower protocol which is a communication protocol including a data link layer. The upper protocol processing unit is configured to execute, in software, the processing of an upper protocol which is a protocol of an upper layer that uses the lower protocol. The offload processing unit is configured to execute, in hardware, part or all of the upper protocol instead of the upper protocol processing unit. The receive offload filter refers to protocol attachment information included in the received frame received by the lower protocol processing unit, and distributes the received frame to a first reception path that does not use the offload processing unit and a second reception path that uses the offload processing unit according to a preset distribution rule. The protocol attachment information is information included in the received frame and indicating at least one of the type of the upper protocol and the type or characteristics of the data handled by the upper protocol.

[0008] According to such a configuration, appropriate offload processing can be selected and executed for each type of upper protocol or for each type or characteristic of the data handled by the upper protocol. As a result, the processing load required for the software processing of the upper protocol can be appropriately reduced.

Brief Description of the Drawings

[0009]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Embodiments for Carrying Out the Invention

[0010] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. [1. Overall Configuration] The in-vehicle system 1 shown in FIG. 1 includes a central electronic control unit (hereinafter referred to as the 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 unifies a plurality of zone ECUs 3 to realize control with coordinated operation as a whole vehicle. The central ECU 2 includes a switch hub 21, a first communication processing unit 22, a second communication processing unit 23, and a memory 24. A part or all of the central ECU 2 may be configured by an SoC. SoC is an abbreviation for System on a Chip.

[0012] The switch hub 21 has a plurality of ports. A communication line (hereinafter referred to as an Ethernet transmission line) 41 belonging to the in-vehicle communication network 4 is connected to each port. The plurality of Ethernet transmission lines 41 form a star-shaped network centered on the switch hub 21. One or more zone ECUs 3 are connected to each Ethernet transmission line 41. However, when connecting a plurality of zone ECUs 3 to one port, the Ethernet transmission line 41 may be branched by connecting a switch hub 43, and one zone ECU 3 may be connected to each of the plurality of branched Ethernet transmission lines 411. In the Ethernet transmission lines 41 and 411, communication according to the Ethernet protocol is executed. Ethernet is a registered trademark. The switch hub 21 executes a process of distributing the destination of the Ethernet frame according to the MAC address of the Ethernet frame.

[0013] The first communication processing unit 22 processes the received frame addressed to the central ECU 2 received via the switch hub 21. Details of the first communication processing unit 22 will be described later. The second communication processing unit 23 includes a plurality of CAN transceivers, and a CAN bus 42 belonging to the in-vehicle communication network 4 is individually connected to each CAN transceiver. CAN is an abbreviation for Controller Area Network. CAN is a registered trademark. One or more zone ECUs 3 that perform data communication via the CAN bus 42 are connected to each CAN bus 42. In the CAN bus 42, communication according to the CAN protocol is executed. The second communication processing unit 23 executes relay of CAN frames transmitted and received via the CAN bus 42, processing of data extracted from the CAN frames, and the like.

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

[0015] The zone ECU 3 connected to the Ethernet transmission paths 41 and 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 one CAN transceiver and has the same functions as the second communication processing unit 23 except for the protocol conversion function and the relay function between the CAN bus 42.

[0016] [2. First Communication Processing Unit] As shown in FIG. 2, the first communication processing unit 22 includes a circuit unit 221 and a core unit 222. The circuit unit 221 includes a lower-layer protocol processing unit 51, a reception offload filter 52, and an offload processing unit 53 as functional blocks realized by hardware.

[0017] The core unit 222 includes a CPU, a ROM, a RAM, etc. Various functions of the core unit 222 are realized by the CPU executing a program stored in a non-transitory tangible recording medium. In this example, the ROM corresponds to the non-transitory tangible recording medium storing the program. Further, by executing this program, a method corresponding to the program is executed.

[0018] 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 realized by the CPU executing a program stored in the ROM.

[0019] Hereinafter, the operations of the functional blocks 51 to 56 belonging to the first communication processing unit 22 will be described separately for reception and transmission. Note that the communication protocol handled by the lower-layer protocol processing unit 51 is referred to as the lower-layer protocol, and the communication protocol handled by the upper-layer protocol processing unit 54 is referred to as the upper-layer protocol. The upper-layer protocol is a communication protocol of an upper layer that uses the lower-layer protocol. Here, the lower-layer protocol is a protocol corresponding to layer 2 (i.e., the data link layer) of the OSI reference model, and the upper-layer protocol is a protocol corresponding to layer 3 or higher of the OSI reference model.

[0020] First, the operation of the first communication processing unit 22 at the time of reception will be described. The lower-layer protocol processing unit 51 receives a communication frame addressed to the central ECU 2 (hereinafter referred to as the received frame) via the switch hub 21. The lower-layer protocol processing unit 51 executes processing using the header information (i.e., PCI) included in the received frame (i.e., the PDU of the lower-layer protocol). PDU is an abbreviation for Protocol Data Unit. PCI is an abbreviation for Protocol Control Information. Also, the actual information included in the PDU together with the PCI and passed to the upper-layer protocol is called SDU. SDU is an abbreviation for Service Data Unit.

[0021] When the lower-layer protocol is the Ethernet protocol, the lower-layer protocol processing unit 51 may execute, for example, error detection processing using FCS, and execute processing to supply the received frame in which no error is detected to the receive offload filter 52. FCS is an abbreviation for Frame Check Sequence.

[0022] The receive offload filter 52 refers to the protocol attachment information included in the PDU of the lower-layer protocol (hereinafter referred to as the lower PDU), and selects the receive path used when providing data to the upper-layer protocol processing unit 54 according to the preset distribution rule 521.

[0023] The protocol attachment information is information that can identify the type of the upper-layer protocol, the type and characteristics of the data handled by the upper-layer protocol, and the like. The reception path has one first reception path R1 and one or more second reception paths R2. The first reception path R1 is a path that provides the SDU (i.e., the PDU of the upper protocol) included in the lower PDU to the upper protocol processing unit 54 without passing through the offloading processing unit 53. In this case, the upper protocol processing unit 54 executes all the processing of the upper protocol in software. The second reception path R2 is a path that provides the PDU of the upper protocol to the upper protocol processing unit 54 via the offloading processing unit 53. In this case, the upper protocol processing unit 54 executes, in software, the processing of the upper protocol other than the processing performed by the offloading processing unit 53.

[0024] The distribution rule 521 is information that associates the value of the protocol attachment information with the reception path to be selected. The distribution rule 521 may be fixedly set, or may be configured to be changeable according to an instruction from a user application (e.g., the rule setting application 561) executed by the application processing unit 56.

[0025] The offloading processing unit 53 includes the same number of processing units as the number of second reception paths R2. In this embodiment, it includes a first processing unit 531, a second processing unit 532, and a third processing unit 533. The first processing unit 531 processes, in hardware, a part of the upper protocol handled by the upper protocol processing unit 54, and outputs the processing result to the upper protocol processing unit 54 together with the PDU of the upper protocol. Hereinafter, the processing in the first processing unit 531 is referred to as partial offloading A, and the second reception path R2 that uses the first processing unit 531 is also denoted as R21.

[0026] The second processing unit 532 processes, in hardware, a part of the upper protocol that is at least partially different from the processing target of the first processing unit 531, and outputs the processing result to the upper protocol processing unit 54 together with the PDU of the upper protocol. Hereinafter, the processing in the second processing unit 532 is referred to as partial offloading B, and the second reception path R2 that uses the second processing unit 532 is also denoted as R22.

[0027] The third processing unit 533 processes all of the upper-layer protocol in hardware and outputs the processing result to the application processing unit 56 including a user application or the like that communicates using the upper-layer protocol. Hereinafter, the processing in the third processing unit 533 is referred to as full offload, and the second reception path R2 that uses the third processing unit 533 is also denoted as R23.

[0028] The upper-layer protocol processing unit 54 realizes the upper-layer protocol by using the PDU of the upper-layer protocol input via the first reception path R1 or the second reception paths R21 and R22 and the processing result of the offload processing unit 53. Further, the upper-layer protocol processing unit 54 outputs the SDU of the upper-layer protocol to the application processing unit 56.

[0029] Note that the transmission offload filter 55 is bypassed without being used during reception. Next, the operation of the first communication processing unit 22 during transmission will be described. An application processing unit 56 that communicates using the upper-layer protocol, such as the application processing unit 56, outputs a transmission request indicating information necessary for generating an upper-layer PDU to the transmission offload filter 55. The transmission request includes information necessary for generating a transmission frame transmitted from the lower-layer protocol processing unit 51 based on the transmission request. Specifically, in addition to the SDU of the upper-layer protocol, various information used for generating the PCI of the upper-layer protocol and the PCI of the lower-layer protocol is included. These information include protocol attachment information.

[0030] When a transmission request is input from the application processing unit 56, the transmission offload filter 55 refers to the protocol attachment information included in the transmission request and selects a transmission path to be used when providing the upper-layer PDU to the lower-layer protocol processing unit 51 according to a preset distribution rule 551.

[0031] The distribution rule 551 is information that associates the value of the protocol attachment information with the transmission path to be selected. The distribution rule 551 has the same content as the distribution rule 521 used in the reception offload filter 52. However, the distribution rule 551 does not necessarily have to be the same as the distribution rule 521.

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

[0033] The first processing unit 531 outputs the processing result of the partial offloading A (i.e., hardware processing) to the lower-layer protocol processing unit 51 together with the processing result of the upper-layer protocol other than the partial offloading A (i.e., software processing) by the upper-layer protocol processing unit 54. Hereinafter, the second transmission path S2 that uses the first processing unit 531 is also denoted as S21.

[0034] The second processing unit 532 outputs the processing result of the partial offloading B (i.e., hardware processing) to the lower-layer protocol processing unit 51 together with the processing result of the upper-layer protocol other than the partial offloading B (i.e., software processing) by the upper-layer protocol processing unit 54. Hereinafter, the second transmission path S2 that uses the second processing unit 532 is also denoted as S22.

[0035] The third processing unit 533 outputs the processing result of the upper-layer protocol by the upper-layer protocol processing unit 54 to the lower-layer protocol processing unit 51. Hereinafter, the second transmission path S2 that uses the third processing unit 533 is also denoted as S23.

[0036] The lower-layer protocol processing unit 51 generates a lower-layer PDU with the upper-layer PDU supplied via the first transmission path S1 and the second transmission path S2 as the lower-layer SDU, and transmits it via the switch hub 21 to the Ethernet transmission path 41 associated with the destination MAC address. The lower-layer PDU generated by the lower-layer protocol processing unit 51 is an Ethernet frame.

[0037] Note that the reception offloading filter 52 is bypassed without being used during transmission. The application processing unit 56 may include a rule setting application 561 as one of the user applications. The rule setting application 561 acquires the pre-transmission information necessary for setting the distribution rules 521, 551 through communication using the upper-layer protocol, and generates the distribution rules 521, 551 according to the pre-transmission information. Further, the rule setting application 561 sets and updates the distribution rules 521, 551 used in the reception offloading filter 52 and the transmission offloading filter 55 according to the generated distribution rules 521, 551.

[0038] [3. Embodiment] [3-1. Embodiment 1] The case where UDP / IP and TCP / IP are used as the upper-layer protocol, the Ethernet protocol is used as the lower-layer protocol, and the information included in the header of the Ethernet frame is used as the protocol attachment information will be described. UDP is an abbreviation for User Datagram Protocol. TCP is an abbreviation for Transmission Control Protocol. IP is an abbreviation for Internet Protocol.

[0039] The Ethernet frame conforms to the DIX standard defined in IEEE802.1Q. As shown in FIG. 3, the Ethernet frame has a header, a payload, and a trailer. The header has fields for setting "destination MAC address", "source MAC address", "tag", "type", etc. The upper-layer PDU is stored in the payload. "FCS" is set in the trailer. FCS is data added to check whether an error has occurred in the data of the payload.

[0040] The "tag", which is part of the header, has fields for setting "TPID", "PCP", "CFI", and "VID". "TPID" is the abbreviation of Tag Protocol Identifier. "TPID" is a tag protocol identifier, and a specified value indicating tagged Ethernet is set. "PCP" is the abbreviation of Priority Code Point. "PCP" indicates priority information. "CFI" is the abbreviation of Canonical Format Identifier. "CFI" indicates the identification of the canonical format. "VID" is the abbreviation of VLAN Identifier. "VID" is an identifier for identifying a VLAN.

[0041] As shown in FIG. 4, the IP header has 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", etc.

[0042] The UDP header has fields for setting "source port number", "destination port number", "data length", "checksum", etc. The TCP header has fields for setting "source port number", "destination port number", "sequence number", "acknowledgment number", "reserved", "code bits", "window size", "checksum", "urgent pointer", "options", etc.

[0043] Note that since the details of each field of the IP header, UDP header, and TCP header are well-known, detailed explanations here are omitted. In Example 1, "PCP" included in the "tag" in the header area of the Ethernet frame is used as protocol assignment information. "PCP", for example, represents a higher priority as the value is smaller.

[0044] An operation example of "PCP" is shown in FIG. 3. For example, when the value of "PCP" is 1, TCP / IP is used as the upper-layer protocol, indicating that it is used for applications with high priority. When the value of "PCP" is 2, UDP / IP is used as the upper-layer protocol, indicating that it is used for applications with high priority. When the value of "PCP" is 3, TCP / IP or UDP / IP is used as the upper-layer protocol, indicating that it is used for applications with low priority.

[0045] In this case, the distribution rules 521 and 551 used in the receive offload filter 52 and the transmit offload filter 55 are set as shown in FIG. 5. That is, the distribution rules 521 and 551 are set to execute partial offload A (i.e., select the second receive path R21 / second transmit path S21) if the value of "PCP" is 1. If the value of "PCP" is 2, they are set to execute partial offload B (i.e., select the second receive path R22 / second transmit path S22). If the value of "PCP" is 3, they are set not to execute offload (i.e., select the first receive path R1 / first transmit path S1).

[0046] In partial offload A, for example, the calculation of the sequence number, acknowledgment number, and checksum included in the TCP header may be processed by hardware. In partial offload B, for example, the calculation of the checksum included in the UDP header may be processed by hardware.

[0047] [3-2. Example 2] A case will be described where UDP / IP and TCP / IP are used as the upper-layer protocols, the Ethernet protocol is used as the lower-layer protocol, and the "protocol" included in the IP header is used as the protocol attachment information.

[0048] The "protocol" is information for identifying a protocol higher than the IP protocol. For example, if the value of the "protocol" is 6, it is TCP, and if it is 17, it is UDP. In this case, the distribution rules 521 and 551 are set to execute partial offloading A if the value of "protocol" is 6, and to execute partial offloading B if the value of "protocol" is 17. The processing contents of partial offloading A and partial offloading B are the same as those in the case of Example 1.

[0049] [3-3. Example 3] The case where UDP / IP is used as the upper-layer protocol, the Ethernet protocol is used as the lower-layer protocol, and the port number included in the UDP header is used as the protocol attachment information will be described.

[0050] As shown in FIG. 6, the UDP header has fields for setting the "source port number", "destination port number", "data length", and "checksum". Also, depending on the characteristics of the data, an "error detection code" may be included at the end of the data in the UDP payload.

[0051] In UDP, a usage method of distributing port numbers according to the usage and characteristics of the transmitted and received data is generally in operation. Also, ASIL is known as an indicator representing the characteristics of the transmitted and received data. ASIL is the abbreviation of Automotive Safety Integrity Level. ASIL is defined in the ISO26262 standard regarding the functional safety of vehicles traveling on roads and has four levels identified by A, B, C, and D. A indicates the lowest safety requirement level, and D indicates the highest safety requirement level. Less than A is represented by QM, indicating that functional safety is not applied. QM is the abbreviation of Quality Management.

[0052] FIG. 6 shows an example of the operation of port numbers using ASIL in UDP. That is, port number 50001 is used for transmitting and receiving image streams, and QM is assigned as the ASIL class. Port number 50002 is used for transmitting and receiving control commands, and B is assigned as the ASIL class. Port number 50003 is used for transmitting and receiving node monitoring frames, and QM is assigned as the ASIL class.

[0053] When the ASIL class is A to D, an error detection code for detecting data errors is added to the data area. When the ASIL class is QM, no error detection code is added to the data area.

[0054] In this case, as shown in FIG. 7, the distribution rule is set such that if the port number is 50002, offloading is executed, and if the port number is 50001 or 50003, offloading is not executed.

[0055] The offloading processing unit 53 executes the calculation of the error detection code in hardware. Further, in the case of processing in the reception path, the offloading processing unit 53 may perform, in hardware, the process of comparing the calculation result of the error detection code with the error detection code added to the data area.

[0056] [3-4. Example 4] The case will be described where UDP / IP or TCP / IP is used as the upper protocol, and Ethernet protocol is used as the lower protocol, and the information included in the header of the SOME / IP frame is used as the protocol attachment information. SOME / IP is the abbreviation of Scalable service-Oriented MiddlewarE over IP.

[0057] As shown in FIG. 8, the SOME / IP frame has fields in the header for setting "Message ID", "Length", "Request ID", "Protocol Version", "Interface Version", "Message Version", "Return Code", etc.

[0058] The "Message ID" includes a "Service ID" for identifying a service and a "Method ID" or "Event ID" for identifying which method or event of the service identified by the service ID it relates to.

[0059] In Example 4, the "Service ID" included in the "Message ID" of the SOME / IP packet is used as the protocol - attached information. However, SOME / IP is service - oriented communication, and from only the "Service ID", the upper - layer protocol applied at a layer lower than SOME / IP is not necessarily uniquely identified.

[0060] Therefore, in Example 4, for each "Service ID", application information indicating the upper - layer protocol associated with that "Service ID" is transmitted in advance using SOME / IP - SD packets as the characteristic information of the transmission - reception data used with that "Service ID".

[0061] The SOME / IP - SD packet is a packet used to search for available services and establish communication. SD is an abbreviation for Service Discovery. As shown in FIG. 9, the SOME / IP - SD packet has fields for setting "Flag", "Reservation", "Entry Array Length", "Entry Array", "Optional Array Length", "Optional Array", etc. instead of the payload of the SOME / IP packet shown in FIG. 8. And the characteristic information of the transmission - reception data is set and transmitted in the "Optional Array".

[0062] The rule - setting application 561 creates distribution rules 521, 551 using the characteristic information of the transmission - reception data received by the SOME / IP - SD packet and distributes them 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 distribution rules 521, 551 distributed from the rule - setting application 561 to realize the distribution of offload processing in units of SOME / IP packets by "Service ID".

[0063] The characteristic information of the transmitted / received data is set for each "service ID". As shown in Fig. 9, the characteristic information of the transmitted / received data is composed of, for example, 8 bits, and an upper-layer protocol used in a layer lower than SOME / IP applicable to each bit is assigned. For example, UDP may be assigned to bit 0, TCP to bit 1, TLS1.3 to bit 2... and jumbo frame to bit 7. When the value of each bit is 1, it indicates that the protocol associated with that bit is applied, and when the value is 0, it indicates that the protocol associated with that bit is not applied. TLS is the abbreviation of Transport Layer Security. TLS is a protocol for performing communication that requires security in a computer network such as the Internet. A jumbo frame is an Ethernet frame with a payload of 1500 bytes or more as defined in the IEEE8022.3 standard.

[0064] Also, offload processing is associated with each applicable protocol, and here, offloads A to D exist. Note that either UDP or TCP is exclusively selected. TLS and jumbo frame may be selected in duplication with other protocols.

[0065] Examples of the distribution rules 521 and 551 created using the characteristic information of the transmitted / received data are shown in Fig. 10. For example, when the "service ID" is 0x0011, it is shown that offload B associated with TCP and offload C associated with TLS1.3 are executed. When the "service ID" is 0x0012, it is shown that none of the offloads are executed. The service with the "service ID" of 0x0013 is shown to execute only offload D associated with the jumbo frame.

[0066] In the fourth embodiment, an example of using SOME / IP-SD packets for transmitting the characteristic information of transmission / reception data, which is pre-transmission information, was shown. However, the transmission of pre-transmission information is not limited to SOME / IP-SD packets. For example, a data flag sub-message used in DDS-RTPS operating on UDP / IP or TCP / IP may be used for transmitting pre-transmission information. The header of the data flag sub-message includes a list of QoS parameters used for message interpretation and the like, and these pieces of information may be used to set the distribution rules 521 and 551. DDS is an abbreviation for Data Distribution Service. RTPS is an abbreviation for Real-Time Publish-Subscribe Wire Protocol.

[0067] [3-5. Fifth Embodiment] A case where AVTP is used as the upper-layer protocol, Ethernet protocol is used as the lower-layer protocol, and the information included in the header of the AVTP frame is used as protocol attachment information will be described. AVTP is an abbreviation for AVB Transport Protocol, and AVB is an abbreviation for Audio Video Bridging. AVTP is a standard for transmitting and receiving high-quality audio and video defined in IEEE1722 with low latency.

[0068] As shown in FIG. 11, the header used when the AVTP frame is used for a stream and control has fields for setting "subtype", "header-dependent bit", "version", etc.

[0069] The "subtype" indicates the type of transmission / reception data and is defined as shown in FIG. 11. That is, for each subtype, a frame format and a header type are set. The distribution rules 521 and 551 may be set so that the content of the offload process switches according to the value of the subtype. Note that only a part of the "subtype" is excerpted and described in FIG. 11.

[0070] [4. Correspondence of Terms] The central ECU 2 and the zone ECU 3 connected to the Ethernet transmission path 41 in the present embodiment, that is, the ECU having the first communication processing unit 22, corresponds to the communication device in the present disclosure. The rule setting application 561 in the present embodiment corresponds to the rule setting unit in the present disclosure.

[0071] [5. Effects] According to the embodiment described in detail above, the following effects can be obtained. (5a) In the vehicle-mounted system 1, the reception offload filter 52 and the transmission offload filter 55 that refer to the protocol attachment information and switch the necessity and type of offload processing for executing part or all of the upper-layer protocol by hardware according to the distribution rules 521 and 551 are provided. Therefore, appropriate offload processing can be selected and executed for each type of upper-layer protocol identifiable from the protocol attachment information, or for each type and characteristic of the data handled by the upper-layer protocol. As a result, the processing load required for the software processing of the upper-layer protocol can be appropriately reduced.

[0072] (5b) In the vehicle-mounted system 1, the distribution rules 521 and 551 can be changed using the rule setting application 561. Therefore, the offload processing can be flexibly optimized according to various user applications that are arbitrarily added or changed.

[0073] (5c) As shown in the first embodiment, when "PCP" included in the header area of the Ethernet frame is used as the protocol attachment information, offload processing corresponding to the type of protocol in the layer above the Ethernet protocol can be realized by appropriately associating "PCP" with the upper-layer protocol.

[0074] (5d) As shown in the second embodiment, when the "protocol" in the IP header is used as the protocol attachment information, offload processing corresponding to the type of protocol in the layer above the IP protocol defined by the "protocol" can be realized.

[0075] (5e) As shown in Example 3, when using the port number as the protocol - attached information, by appropriately associating the port number with the types and characteristics of the data handled at that port in the offload filter, offload processing according to the types and characteristics of the data handled by protocols at layers higher than UDP and TCP can be realized.

[0076] (5f) As shown in Example 4, when using the "service ID" included in the "message ID" of SOME / IP as the protocol - attached information, by appropriately associating the service ID with the upper - layer protocol to be applied, offload processing according to the type of the upper - layer protocol at a layer lower than SOME / IP can be realized.

[0077] (5g) As shown in Example 5, when using the "sub - type" of the AVTP frame as the protocol - attached information, offload processing according to the frame format and header type can be realized.

[0078] [6. Other Embodiments] The embodiments of the present disclosure have been described above. However, the present disclosure is not limited to the above - described embodiments and can be implemented with various modifications.

[0079] (6a) In the above - described embodiment, the rule - setting application 561, which is one of the user applications, sets the offload filter rules. However, it may also be set using a dedicated setting application. (6b) The multiple functions of one component in the above - described embodiment may be realized by multiple components, or one function of one component may be realized by multiple components. Also, multiple functions of multiple components may be realized by one component, or one function realized by multiple components may be realized by one component. Further, a part of the configuration of the above - described embodiment may be omitted. Also, at least a part of the configuration of the above - described embodiment may be added to or replaced with the configuration of other above - described embodiments.

[0080] (6c)In addition to the ECU as the communication device described above, the present disclosure can also be realized in various forms such as a system including the communication device and a method for distributing offload processing. [7. Technical Ideas Disclosed in this Specification] [Item 1] A lower protocol processing unit (51) configured to execute processing of a lower protocol, which is a communication protocol including a data link layer, by hardware, An upper protocol processing unit (54) configured to execute processing of an upper protocol, which is a protocol of an upper layer using the lower protocol, by software, An offload processing unit (53) configured to execute part or all of the upper protocol by hardware instead of the upper protocol processing unit, A reception offload filter (52) configured to refer to protocol attachment information included in a received frame received by the lower protocol processing unit and distribute the received frame to a first reception path that does not use the offload processing unit and a second reception path that uses the offload processing unit according to a preset distribution rule, Comprising The protocol attachment information is information included in the received frame and indicating at least one of the type of the upper protocol and the type or characteristics of data handled by the upper protocol. Communication device.

[0081] [Item 2] The communication device according to Item 1, The lower protocol includes an Ethernet protocol, As the protocol attachment information, the value of the PCP field included in the header of the Ethernet frame is used. Communication device.

[0082] [Item 3] The communication device according to Item 1, The upper protocol includes IP, As the protocol addition information, use the value of the protocol field in the IP header. Communication device.

[0083] [Item 4] The communication device according to item 1, The upper protocol includes UDP or TCP, As the protocol addition information, use the value of the destination port number field in the UDP header or TCP header. Communication device.

[0084] [Item 5] The communication device according to item 1, The upper protocol includes SOME / IP, As the protocol addition information, use the value of the service ID field in the SOME / IP header. Communication device.

[0085] [Item 6] The communication device according to item 1, The upper protocol includes AVTP, As the protocol addition information, use the value of the subtype field in the AVTP header. Communication device.

[0086] [Item 7] The communication device according to any one of items 1 to 6, The transmitted data to which the upper protocol is applied is referred to the protocol addition information set in the transmission frame including the data, and according to the distribution rule, the first transmission path that does not use the offload processing unit and the second transmission path that uses the offload processing unit are configured to be distributed. A transmission offload filter (55) The communication device further comprising.

[0087] [Item 8] The communication device according to any one of items 1 to 7, Further comprising a rule setting unit (561) configured to set the distribution rule according to the pre-transmission information obtained using the upper protocol Communication device

[0088] [Item 9] The communication device according to Item 8, wherein the rule setting unit obtains the pre-transmission information using a SOME / IP-SD packet or a data flag sub-message of DDS-RTPS Communication device

Explanation of symbols

[0089] 22…First communication processing unit, 51…Lower protocol processing unit, 52…Receive offload filter, 53…Offload processing unit, 54…Upper protocol processing unit, 55…Transmit offload filter, 56…Application processing unit, 221…Circuit unit, 222…Core unit, 521, 551…Distribution rules, 531…First processing unit, 532…Second processing unit, 533…Third processing unit, 561…Rule setting application, R1…First reception path, R2 (R21~R23)…Second reception path, S1…First transmission path, S2 (S21~S23)…Second transmission path

Claims

1. A lower protocol processing unit (51) configured to execute, in hardware, the processing of a lower protocol which is a communication protocol including a data link layer; An upper protocol processing unit (54) configured to execute, in software, the processing of an upper protocol which is a protocol of an upper layer using the lower protocol; An offload processing unit (53) configured to execute, in hardware, part or all of the upper protocol in place of the upper protocol processing unit; A reception offload filter (52) configured to refer to protocol attachment information included in a received frame received by the lower protocol processing unit and distribute the received frame to a first reception path not using the offload processing unit and a second reception path using the offload processing unit according to a preset distribution rule; Comprising; The protocol attachment information is information included in the received frame and indicating at least one of the type of the upper protocol and the type or characteristic of data handled by the upper protocol. A communication device.

2. The communication device according to Claim 1, The lower protocol includes an Ethernet protocol, As the protocol attachment information, the value of the PCP field included in the header of the Ethernet frame is used. A communication device.

3. The communication device according to Claim 1, The upper protocol includes IP, As the protocol attachment information, the value of the protocol field included in the IP header is used. A communication device.

4. The communication device according to Claim 1, The upper protocol includes UDP or TCP, As the protocol attachment information, the value of the destination port number field included in the UDP header or the TCP header is used. A communication device.

5. The communication device according to Claim 1, The upper protocol includes SOME / IP, As the protocol attachment information, the value of the service ID field included in the SOME / IP header is used. A communication device.

6. The communication device according to Claim 1, The upper protocol includes AVTP, As the protocol attachment information, the value of the subtype field included in the AVTP header is used. A communication device.

7. The communication device according to Claim 1, A transmission offload filter (55) configured to distribute data transmitted by applying the upper protocol to a first transmission path that does not use the offload processing unit and a second transmission path that uses the offload processing unit according to the distribution rule, with reference to the protocol attachment information set in a transmission frame including the data. A communication device further comprising the same. **Claim 8** The communication device according to claim 1 or claim 7, further comprising a rule setting unit (561) configured to set the distribution rule according to pre-transmission information obtained using the upper protocol. A communication device. **Claim 9** The communication device according to claim 8, wherein the rule setting unit obtains the pre-transmission information using a SOME / IP-SD packet or a data flag sub-message of DDS-RTPS. A communication device.

Citation Information

Patent Citations

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

    JP2018196140A