Apparatus and method for processing data units

The apparatus and method address the challenge of efficiently routing and managing PDUs by using a search tree to determine connection identifiers and handling undeterminable cases, resulting in effective PDU management and routing.

JP7679502B2Active Publication Date: 2025-05-19ROBERT BOSCH GMBH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2023577402
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-06-18
Filing Date
2022-06-13
Publication Date
2025-05-19
Estimated Expiration
2042-06-13

AI Technical Summary

Technical Problem

Existing data processing systems face challenges in efficiently routing and managing protocol data units (PDUs) across data connections, particularly in determining the appropriate connection identifiers and handling cases where identifiers are not determinable.

Method used

The apparatus and method involve a processing device that utilizes a first search tree to determine connection identifiers for PDUs, with the ability to temporarily form or modify the search tree, and handle undeterminable identifiers through predetermined reactions such as discarding, assigning configurable identifiers, or setting bit flags.

Benefits of technology

This solution enables efficient routing and management of PDUs by quickly determining connection identifiers using hardware-based searches in the first search tree, while also handling edge cases effectively through software-based reactions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007679502000005
    Figure 0007679502000005
  • Figure 0007679502000006
    Figure 0007679502000006
  • Figure 0007679502000007
    Figure 0007679502000007
Patent Text Reader

Abstract

An apparatus for processing data units, e.g. protocol data units, comprising: a first number of input interfaces for receiving the protocol data units; a second number of output interfaces for outputting the protocol data units; and a processing device configured to perform a search in at least a first search tree based on a PDU identifier associated with the received protocol data units, the first search tree including an assignment of each one of the PDU identifiers to a connection identifier characterizing at least one data connection.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to an apparatus for processing data units. The present disclosure further relates to a method for processing data units.

Summary of the Invention

[0002] An exemplary embodiment is an apparatus for processing a data unit, such as a protocol data unit, comprising a first number of input interfaces for receiving the protocol data unit, a second number of output interfaces for outputting the protocol data unit, and a processing device configured to perform a search in at least a first search tree based on a PDU identifier associated with the received protocol data unit, wherein the first search tree includes an assignment of one PDU identifier each to a connection identifier characterizing at least one data connection.

[0003] In a further exemplary embodiment, the first number is one or more. In a further exemplary embodiment, the second number is one or more. In a further exemplary embodiment, it is contemplated that the apparatus is configured to determine a connection identifier associated with the received protocol data unit based on the received protocol data unit.

[0004] In a further exemplary embodiment, it is contemplated that the processing device comprises at least one hardware component, and the hardware component is configured to perform a search in the first search tree and / or to determine a connection identifier associated with the received protocol data unit.

[0005] In a further exemplary embodiment, it is contemplated that the first search tree is a binary tree. In a further exemplary embodiment, it is contemplated that the first search tree is a ternary tree or an n-ary tree (n>3).

[0006] In further exemplary embodiments, it is contemplated that the apparatus is configured to output a received protocol data unit to at least one particular output interface of a second number of output interfaces based on a connection identifier associated with the received protocol data unit.

[0007] In further exemplary embodiments, it is contemplated that the processing device comprises at least one software component, and the software component is configured to at least temporarily a) form and / or b) modify, for example balance, a first search tree.

[0008] In further exemplary embodiments, at least one software component is configured to perform a predetermined reaction for a received protocol data unit if a connection identifier associated with the received protocol data unit is not determinable, for example if the connection identifier associated with the received protocol data unit is not within a first search tree. The predetermined reaction comprises at least one element of a) discarding the received protocol data unit, b) assigning, for example a configurable connection identifier, to the received protocol data unit, c) setting or inserting first information regarding the received protocol data unit, for example in the form of a bit flag. The first information is contemplated to indicate, for example, that the received protocol data unit should be checked by a firewall device.

[0009] In further exemplary embodiments, it is contemplated that the apparatus, for example at least one software component, is configured to generate, manage, for example modify, a second search tree based on, for example, a first search tree.

[0010] In further exemplary embodiments, it is contemplated that the first search tree and / or the second search tree is a red-black tree. In further exemplary embodiments, it is contemplated that the first search tree is a binary tree without color information (e.g., red / black), for example, and the second search tree is a red-black tree. Thereby, in the first search tree where there is no color information regarding the search, for example, efficient, for example, hardware-based search by at least one hardware component becomes possible, while the second search tree is configured as a red-black tree in order to efficiently manage the second search tree.

[0011] In further exemplary embodiments, it is contemplated that the apparatus is configured to compile the first search tree and / or the second search tree at least temporarily in the form of at least one table.

[0012] In further exemplary embodiments, the apparatus is configured to, at least partially overlapping in time, a) determine a connection identifier associated with the received protocol data unit by, for example, executing a search in the first search tree by at least one hardware component based on the received protocol data unit, and b) generate and / or manage, for example, modify one or the second search tree as described above, for example, by at least one software component based on the first search tree.

[0013] In further exemplary embodiments, the apparatus is configured to perform at least one of the following elements: a) at least temporary, for example, selective use of the first search tree or the second search tree for determining a connection identifier associated with the received protocol data unit, b) transmission of the content and / or structure of the second search tree to the first search tree, c) transmission of the content and / or structure of the first search tree to the second search tree.

[0014] In further exemplary embodiments, an apparatus, such as at least one software component, is configured to signal to, for example, at least one hardware component, by, for example, second information, at least one of the following elements: a) that a first search tree should be used for performing a search; b) that a second search tree should be used for performing a search; c) that a modification of the first search tree and / or the second search tree, such as insertion of at least one node and / or balancing of the target search tree, has been completed.

[0015] In further exemplary embodiments, it is contemplated that an apparatus, such as at least one hardware component, is configured to use a first search tree or a second search tree for performing a search based on the signal.

[0016] In further exemplary embodiments, it is contemplated that an apparatus, such as at least one hardware component, is configured to activate a first search tree or a second search tree by, for example, determining which of the two search trees should be used for performing a search, for example, with respect to execution of a search between two consecutive searches, or with respect to a future execution of a search.

[0017] In further exemplary embodiments, it is contemplated that an apparatus is configured to control or adjust a rate at which protocol data units are output via at least one output interface of a second number of output interfaces.

[0018] In further exemplary embodiments, it is contemplated that an apparatus comprises at least one memory for storing at least temporarily one or more protocol data units or a part of one or more protocol data units.

[0019] In further exemplary embodiments, it is contemplated that the apparatus comprises a conditioning device configured to change, e.g., normalize, a PDU identifier associated with a received protocol data unit.

[0020] Further exemplary embodiments relate to a method, e.g., a computer-implemented method, for processing a data unit, e.g., a protocol data unit, for an apparatus as described in any one of the preceding claims, the method comprising a first number of input interfaces for receiving a protocol data unit, a second number of output interfaces for outputting a protocol data unit, and a processing device, and including performing a search in at least a first search tree based on a PDU identifier associated with the received protocol data unit, the first search tree including an assignment of each one PDU identifier to a connection identifier characterizing at least one data connection.

[0021] In further exemplary embodiments, it is contemplated that the method includes determining a connection identifier associated with the received protocol data unit based on the received protocol data unit.

[0022] In further exemplary embodiments, it is contemplated that the processing device comprises at least one hardware component, and performing the search in the first search tree and / or determining the connection identifier associated with the received protocol data unit is performed by at least one hardware component.

[0023] In further exemplary embodiments, it is contemplated that the processing device comprises at least one software component, and the method includes a) at least temporarily forming a search tree by at least one software component and / or b) at least temporarily modifying, e.g., balancing, a search tree by at least one software component.

[0024] Further exemplary embodiments relate to an apparatus for performing the method according to the embodiments. Further exemplary embodiments relate to a computer-readable storage medium including instructions that, when executed by a computer, cause the computer to perform at least some of the steps of the method according to the embodiments.

[0025] Further exemplary embodiments relate to a computer program including instructions that, when the program is executed by a computer, cause the computer to perform at least some of the steps of the method according to the embodiments.

[0026] Further exemplary embodiments relate to a data carrier signal for transmitting and / or characterizing a computer program according to the embodiments. Further exemplary embodiments relate to a gateway comprising at least one apparatus according to the embodiments, such as a motor vehicle gateway.

[0027] Further exemplary embodiments relate to: a) the processing of data units, such as protocol data units, in a vehicle, such as an automobile; b) the determination, such as by a hardware component, for example by searching, of connection identifiers associated with received protocol data units; c) the management of at least one search tree; d) the execution of a hardware-based search for connection identifiers for data units, such as gateway data units, related to automotive applications, such as protocol data units, wherein the search can be executed with a logarithmic function; e) the routing or transmission of data units, such as protocol data units, in a vehicle, such as an automobile, wherein the data units can have different types; f) the assignment of connection identifiers that are, for example, protocol-independent; g) the execution of multicast transmissions; h) the determination as to whether a connection identifier is not provided, for example not stored, for example not included in a search tree, for a given received data unit, such as a protocol data unit; i) the software-based processing of received data units, such as protocol data units, for which a connection identifier is not provided, for example not stored, for example not included in a search tree. Embodiments relate to an apparatus according to an embodiment, and / or a method according to an embodiment, and / or a computer-readable storage medium according to an embodiment, and / or a computer program according to an embodiment, and / or a data carrier signal according to an embodiment, and / or the use of a gateway according to an embodiment, for at least one of the elements described above.

[0028] Further features, possible uses, and advantages of the present invention will become apparent from the following description of exemplary embodiments of the present invention shown in the figures of the drawings. Here, all features described or shown, regardless of their overview or their relationship in the claims, and regardless of their representation or illustration in this specification or the drawings, individually or in any combination, form the subject matter of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0029]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Mode for Carrying Out the Invention

[0030] The exemplary embodiment (see FIG. 1) is an apparatus 100 for processing a data unit PDU-1, for example a protocol data unit, comprising a first number of input interfaces 110 for receiving the protocol data unit PDU-1, a second number of output interfaces 120, 120a for outputting the protocol data unit, and a processing device 130 configured to perform a search in at least a first search tree B-1 (FIG. 1) based on a PDU identifier MSG-ID (see FIG. 2) associated with the received protocol data unit PDU-1, the first search tree B-1 including an assignment Z of each one PDU identifier MSG-ID (FIG. 2) to a connection identifier VB-ID characterizing at least one data connection, relating to the apparatus 100.

[0031] A flowchart of a corresponding method according to the exemplary embodiment is shown in FIG. 3, and block 200 represents the execution of a search in at least a first search tree B-1 (FIG. 1). In a further exemplary embodiment, it is contemplated that the device 100 (FIG. 1) is configured to determine a connection identifier VB-ID-1 associated with the received protocol data unit PDU-1, for example by a search 200 in the first search tree B-1, based on the received protocol data unit PDU-1 (see optional block 202 according to FIG. 3).

[0032] In a further exemplary embodiment, it is contemplated that the processing device 130 (FIG. 1) comprises at least one hardware component 132, and the hardware component 132 is configured to perform the search 200 in the first search tree B-1 and / or to determine 202 a connection identifier VB-ID-1 associated with the received protocol data unit PDU-1.

[0033] In a further exemplary embodiment, it is contemplated that the first search tree B-1 is a binary tree. In a further exemplary embodiment, it is contemplated that the first search tree B-1 is a ternary tree or an n-ary tree (n > 3).

[0034] In a further exemplary embodiment, the apparatus is configured to output the received protocol data unit PDU-1 and / or data derivable from or derived from the received protocol data unit PDU-1 based on the connection identifier VB-ID-1 associated with the received protocol data unit PDU-1 to at least one specific output interface 120a (FIG. 1) of the second number of output interfaces 120 (see optional block 204 according to FIG. 3).

[0035] In a further exemplary embodiment (FIG. 1), the processing device 130 comprises at least one software component 134, and the software component 134 is configured to at least temporarily a) form the first search tree B-1 (see block 210 according to FIG. 4), and / or b) modify it, for example balance it (see block 212). In a further exemplary embodiment, based on the modification 212, the modified, for example balanced, first search tree B-1 may be obtained.

[0036] In a further exemplary embodiment (Figs. 5, 6), at least one software component 134 (Fig. 1) is configured to execute a predetermined reaction R 222 for a received protocol data unit PDU-1 if a connection identifier VB-ID-1 associated with the received protocol data unit PDU-1 cannot be determined, for example, if the connection identifier VB-ID-1 associated with the received protocol data unit PDU-1 is not in the first search tree B-1 for the received protocol data unit PDU-1. For example, the predetermined reaction R comprises at least one of the following elements: a) discarding 225 the received protocol data unit PDU-1, b) assigning 226, for example, a configurable connection identifier VB-ID-CFG to the received protocol data unit PDU-1, c) setting or inserting 227 first information I1 regarding the received protocol data unit PDU-1, for example, in the form of a bit flag. The first information I1 is intended to indicate, for example, that the received protocol data unit PDU-1 should be checked by, for example, a firewall device. In a further exemplary embodiment, block 220 according to Fig. 5 represents the reception of the protocol data unit PDU-1.

[0037] In a further exemplary embodiment (Fig. 7), it is contemplated that the device 100 (Fig. 1), for example, at least one software component 134, is configured to generate 230 and / or manage 232, for example, modify, a second search tree B-2 based on, for example, the first search tree B-1, and for example, a modified second search tree B-2' can be obtained.

[0038] In a further exemplary embodiment, it is contemplated that the first search tree B-1 and / or the second search tree B-2 is a red-black tree. In further exemplary embodiments, it is contemplated that the first search tree B-1 is, for example, a binary tree without color information (e.g., red / black), and the second search tree B-2 is a red-black tree. Thereby, in the first search tree B-1 where there is no color information regarding the search, for example, efficient, e.g., hardware-based search by at least one hardware component 132 becomes possible. In further exemplary embodiments, the second search tree B-2 is configured as a red-black tree, for example, to efficiently manage the second search tree B-2.

[0039] In further exemplary embodiments, it is contemplated that the apparatus 100 is configured to at least temporarily organize the first search tree B-1 and / or the second search tree B-2 in the form of at least one table.

[0040] In a further exemplary embodiment (FIG. 8), the apparatus 100 is configured to, at least partially overlapping in time, a) determine 240 a connection identifier VB-ID-1 associated with the received protocol data unit PDU-1 by, for example, executing a search in the first search tree B-1 by at least one hardware component 132 based on the received protocol data unit PDU-1, and b) generate 242 and / or manage 244, for example, modify (e.g., convert to a red-black tree and / or change the elements or structure of the search tree) one or the above-mentioned second search tree B-2 by, for example, at least one software component 134 based on the first search tree B-1 (e.g., by copying the first search tree B-1).

[0041] In a further exemplary embodiment (FIG. 9), the apparatus 100 is configured to perform at least one of: a) a temporary, e.g., optional use 250 of at least one of the first search tree B-1 or the second search tree B-2, e.g., to determine a connection identifier VB-ID-1 associated with a received protocol data unit PDU-1; b) a transmission 251 of the content and / or structure of the second search tree B-2 to the first search tree B-1 (e.g., to make the, e.g., balance-adjusted search trees B-2, B-2' modified by the software component 134, searchable by the hardware component 132 in the first search tree B-1); c) a transmission 252 of the content and / or structure of the first search tree B-1 to the second search tree B-2 (e.g., to prepare a modification executable by the software component 134).

[0042] In a further exemplary embodiment (FIG. 10), it is contemplated that an apparatus, e.g., at least one software component, signals at least one of: a) that the first search tree B-1 should be used for performing a search; b) that the second search tree B-2 should be used for performing a search; c) that a modification of the first search tree B-1 and / or the second search tree B-2, e.g., insertion of at least one node and / or balance adjustment of the target search tree, is complete, to at least one hardware component, e.g., by the second information I2.

[0043] In a further exemplary embodiment, it is contemplated that the apparatus 100, e.g., at least one hardware component 132, is configured to use 256 the first search tree B-1 or the second search tree B-2 for performing a search based on the signal 255.

[0044] In a further exemplary embodiment, the apparatus 100, for example at least one hardware component 132, is configured to activate 257 the first search tree B-1 or the second search tree B-2, for example, with respect to the execution of a search between two consecutive searches, for example with respect to a future execution of a search, by determining 257a, for example, which of two search trees should be used with respect to the execution of a search.

[0045] In a further exemplary embodiment (FIG. 11), it is contemplated that the apparatus 100 is configured to control 261 or adjust 262 the rate at which protocol data units are output via at least one output interface of a second number of output interfaces. Block 260 in FIG. 11 represents, for example, the reception of protocol data units, and in a further exemplary embodiment with respect thereto, the above rate is controlled 261 or adjusted 262.

[0046] FIG. 12 schematically shows a simplified block diagram of an apparatus 100a according to an exemplary embodiment, which in a further exemplary embodiment can have functions equivalent to those of the apparatus 100 according to FIG. 1.

[0047] Block E1 according to FIG. 12 represents a search device, for example implemented in the form of hardware, which is by or comparable to the hardware component 132 according to FIG. 1.

[0048] Block E2 represents the first search tree B-1 (FIG. 1), which can be compiled, for example, in the form of a first table and can be referred to as a "working table" in a further exemplary embodiment. Block E3 represents the second search tree B-2 (FIG. 7), which can be compiled, for example, in the form of a second table and can be referred to as a "shadow table" in a further exemplary embodiment.

[0049] In a further exemplary embodiment, the apparatus 100a comprises a multiplexer device E23, by which the search device E1 can selectively access, for example, the first table E2 or the second table E3 for the execution of a search (see block 200 according to FIG. 3). In a further exemplary embodiment, the selection of the first table E2 or the second table E3 can be realized, for example, by a control signal a1, which, in a further exemplary embodiment, can be output, for example, to form the search device E1 and / or to the multiplexer device E23.

[0050] In a further exemplary embodiment, it is contemplated that the apparatus 100a comprises at least one memory for at least temporarily storing one or more, for example, received protocol data units PDU-1 (FIG. 1) or parts of one or more protocol data units. The apparatus 100a comprises, for example, a first buffer memory E5, which can at least temporarily store, for example, incoming protocol data units or protocol data units receivable or received by the apparatus 100a, for example, according to the FIFO (first in first out) principle. Optionally, the first buffer memory E5 can also at least temporarily perform the de-segmentation of the received protocol data units.

[0051] In a further exemplary embodiment, the apparatus 100a comprises a second buffer memory E6, which can be used, for example, for the "delay" of at least one received protocol data unit, i.e., for the temporary buffering of, for example, the received protocol data unit or at least a part of the received protocol data unit, until, for example, the output of the protocol data unit, for example, at a later point in time as the case may be.

[0052] In a further exemplary embodiment, the second buffer memory E6 is configured to delay the received protocol data unit until the search device E1 determines a connection identifier VB-ID-1 associated with the received protocol data unit PDU-1, for example, by a hardware component 132, a first search tree B-1 executed by E1, and a search in E2.

[0053] In a further exemplary embodiment, the memory capacity or memory size of the second buffer memory E6 can be predetermined based on the maximum search period in the first search tree B-1. For example, in a further exemplary embodiment, when using the first binary search tree B-1, it can be assumed that the maximum search period is proportional to the logarithm, for example, the dual logarithm (ld), the number of nodes in the search tree, and the number of clock cycles required for reading and evaluating the nodes of the search tree.

[0054] In a further exemplary embodiment, it is contemplated that the apparatus 100a includes a conditioning device E4 configured to change, for example, normalize, the PDU identifier associated with the received protocol data unit. In this regard, FIG. 14 schematically shows a simplified flowchart according to a further exemplary embodiment, where block 265 represents an optional reception of the protocol data unit PDU-1, block 266 represents a change in the PDU identifier MSG-ID associated with the received protocol data unit, for example, a changed PDU identifier MSG-ID' is obtained. Optional block 267 represents a further processing of the changed PDU identifier MSG-ID' according to a further exemplary embodiment, for example, representing the execution of a search in the first search tree B-1, E2 based on the changed PDU identifier MSG-ID'.

[0055] In a further exemplary embodiment, the conditioning device E4 is configured to form, for example, a search vector a2 that can be transmitted to the search device E1. In a further exemplary embodiment, the search vector a2 can have at least one element of: a) a PDU identifier MSG-ID associated with the received protocol data unit PDU-1; b) information rxbus characterizing, for example, a virtual input interface corresponding to the virtual device identifier of a virtual device, where the protocol data unit PDU-1 was received; c) information rembus characterizing a remote reception bus of the L-PDU, for example, with respect to at least one type of the received protocol data unit PDU-1, for example, with respect to the L-PDU type.

[0056] In a further exemplary embodiment, the search vector a2, also referred to as "searchVector", can also have, for example, the three elements a), b), c) described above. That is, searchVector = {rxbus, rembus, msgid}, where msgid characterizes the PDU identifier MSG-ID.

[0057] In a further exemplary embodiment, the search device E1 is configured to compare the search vector a2 with a reference vector in a first table E2, where, for example, the reference vector defines a format or one of several possible formats.

[0058] In further exemplary embodiments, based on each input interface 110 where, for example, a protocol data unit PDU-1 is received, one or more of the following formats can be used for the PDU identifier MSG-ID. a) For example, a type I-PDU (e.g., an Interaction Layer Protocol Data Unit according to AUTOSAR), such as a CAN (Controller Area Network) protocol or a CAN-Bus related protocol data unit, b) an 11-bit standard ID, c) a 29-bit extended ID, d) a 32-bit message ID, such as a CAN-XL acceptance field, e) an I-PDU associated with a LIN (Local Interconnect Network) bus, f) AUTOSAR dynamic I-PDU multiplexing using UDP or CAN as the transport layer (ASAR socket at TUNETH_DEV or CAN socket at TUNCAN_DEV), g) SomeIP S-PDU multiplexing (SomeIP socket at TUNETH_DEV or CAN socket at TUNCAN_DEV), h) AVTP P1722 L-PDU multiplexing (AVB socket at TUNETH_DEV).

[0059] In further exemplary embodiments, the conditional device E4 is configured to form, for example, a compatible search vector a2 by normalizing the above-described format for the PDU identifier MSG-ID, and for example, a normalized search vector a2' is obtained. For example, the search vector a2 and / or the normalized search vector a2' can have 32 bits.

[0060] In further exemplary embodiments, the function of the conditional device E4 can be characterized, for example, by the following pseudo-code ("Pseudo-code 1"). ********Pseudo-code 1 - Start********

[0061]

Number

[0062]

Number

[0063]

Number

[0064] ********Pseudo code 1 - End******** In a further exemplary embodiment, the variable "noSearch" provided by the above Pseudo code 1 can characterize whether the search should be executed by the search device E1. The information associated with the variable noSearch can be transmitted to the search device E1 by the conditioning device E4 in a further exemplary embodiment (see, for example, arrow a3 in FIG. 12).

[0065] In a further exemplary embodiment, the variable "validMsg" provided in the above Pseudo code 1 can be used to distinguish between a valid message or data frame and an invalid message or data frame.

[0066] In a further exemplary embodiment, the query "--AVBTP General Purpose control message else if tlv.messageType==CLF_TLV_P1722_GPC" included in the above Pseudo code 1 can prevent the search from being executed for PDU identifiers having the format / type AVBTP or CLF_TLV_P1722_GPC. For example, in a further exemplary embodiment, for such types of PDU identifiers, the configurable connection identifier VB-ID-CFG (see, for example, block 226 in FIG. 6) can be predefined, for example, without prior search.

[0067] In a further exemplary embodiment, one or the above configurable connection identifiers VB-ID-CFG may be contemplated to be used for PDU identifiers for which the search is not executed.

[0068] In a further exemplary embodiment, the apparatus 100a comprises a device E7 for modifying header data, and the device E7 is configured to selectively discard, for example, a protocol data unit PDU-1, for example based on control a4 by the search device E1, if a result cannot be obtained by the search by the search device E1.

[0069] In a further exemplary embodiment, the apparatus 100a comprises a third buffer memory E8, and the third buffer memory E8 can buffer at least temporarily the protocol data units to be output and, optionally, perform segmentation at least temporarily.

[0070] In a further exemplary embodiment, the apparatus 100a comprises a statistical device E9, and the statistical device E9 is configured to determine or manage statistical information regarding the operation of the apparatus 100, 100a or the search device E1.

[0071] In a further exemplary embodiment, the apparatus 100a, for example the statistical device E9, is configured to manage at least one of the following counters (FIG. 13) by way of example. a) Counter Z1 regarding the number of discarded protocol data units, b) Counter Z2 regarding the total number of protocol data units processed by the apparatuses 100, 100a, c) Counter Z3 regarding the number of protocol data units transferred by the apparatuses 100, 100a, d) Counter Z4 regarding the number of search hits of the search device E1, e) Counter Z5 regarding the number of search failures by the search device E1, f) Counter Z6 regarding the protocol data units to be discarded, for example indicated by the conditioning device E4 as being damaged and to be discarded, excluding protocol data units of type AVB P1722 GPC, for example, g) Counter Z7 regarding the number of bytes transmitted by the apparatuses 100, 100a.

[0072] In a further exemplary embodiment, at least one of the counters Z1, Z2, ···, Z7 described above has a 32-bit data width, which, in a further exemplary embodiment, is implemented, for example, by software, for example by software component 134 (FIG. 1), for example by relatively low-frequency polling (for example, at second intervals, or at a frequency less than once per second).

[0073] In a further exemplary embodiment, the design of the search device E1 (FIG. 12) may depend on the search algorithm used. In a further exemplary embodiment, the following exemplary embodiments regarding the search algorithm are contemplated, both of which are, for example, variants of binary search and use, for example, a working table E2 (FIG. 12) and a shadow table E3.

[0074] In a further exemplary embodiment, the working table E2 is used, for example, by hardware component 132 (FIG. 1) for, for example, the execution of the search 200 (FIG. 3) and / or for the determination 202 of the connection identifier VB-ID-1 associated with the received protocol data unit PDU-1.

[0075] In a further exemplary embodiment, the shadow table E3 is used, for example, by software component 134 to change the search table, for example, when entries are added and / or deleted during the runtime of devices 100, 100a. In a further exemplary embodiment, for example, a binary sort table can be used, and the binary sort table comprises, for example, a plurality of sorted reference vectors (an "array"), for example the above-mentioned reference vectors. In a further exemplary embodiment, for example, each entry of the binary sort table can be represented as a node.

[0076] In further exemplary embodiments, for example, a search tree, such as a balanced search tree, such as a red-black tree, can be used (see above for the first search tree B-1 and the second search tree B-2). In further exemplary embodiments, for example, at least one of the search trees B-1, B-2 can be compiled in the form of a table.

[0077] In further exemplary embodiments, the node structure for at least one of the search trees B-1, B-2 can be characterized, for example, as follows.

[0078] [Number]

[0079] Here, refVector characterizes a reference vector, and the reference vector can have, for example, the elements rxbus (e.g., having 8 bits), rembus (e.g., having 8 bits), msgid (e.g., having 32 bits) already described above. attrib characterizes an optional attribute for the node. sec characterizes an attribute associated with possible authentication. fw characterizes an optional attribute indicating whether, for example, by a firewall, a security check should be performed for the target protocol data unit or for the protocol data unit associated with the connection identifier pduCid. nodeLeft characterizes the left child node in a binary search tree. nodeRight characterizes the right child node of a binary search tree. color characterizes the color attribute for the search tree.

[0080] In further exemplary embodiments, for example, a binary search tree can be stored or stored in, for example, hardware memory and can have a "color" component. This can be used, in further exemplary embodiments, to enable modification of the search tree, for example, "in-memory" (i.e., directly within the memory), without the need to create, for example, a costly copy in the main memory of the software.

[0081] In further exemplary embodiments, a search tree evaluable by the hardware component 132, for example, the first search tree B-1, does not have color information (red-black) regarding its nodes. In further exemplary embodiments, this color information (red-black) is provided and / or used, for example, when a node is added and / or removed, and the operation is performed, for example, on a second search tree B-2 by, for example, the software component 134. Thus, in further exemplary embodiments, for example, the color information (red-black) associated with the nodes of the second search tree B-2 can be maintained in a table manageable by the software component 134 or at least temporarily stored.

[0082] In further exemplary embodiments, a search tree evaluable by the hardware component 132, for example, the first search tree B-1, has color information (e.g., red-black) regarding its nodes, which can be realized, for example, by the above-mentioned "color" component.

[0083] The binary search-based embodiments described above as examples advantageously require a relatively small, logarithmic search effort based on the total number of elements of the target search tree or the target table. In further exemplary embodiments, if the search 200 (Figure 3) is successful, it is contemplated that the search device E1 will send an optional attribute attrib regarding the node of the search tree B-1, for example, found in the search 200, to the device E7 for modifying the header data (see arrow a5 in Figure 12). In this case, for example, the discard of the target protocol data unit PDU-1 is not signaled (see arrow a4 already described above with reference to Figure 12).

[0084] In a further exemplary embodiment, if the search 200 is unsuccessful, it is contemplated that the search device E1 executes at least one of the following actions. a) Instruct the device E7 to discard the protocol data unit PDU-1, for example by arrow a4 (for example, the counter Z6 (FIG. 13) can also be incremented), b) Insert, for example, a static and / or configurable connection identifier VB-ID-CFG (and / or, for example, optionally, set a firewall flag fw indicating that the protocol data unit PDU-1 must undergo a security check by a firewall device, which can be integrated into the devices 100, 100a).

[0085] A further exemplary embodiment (FIG. 3) is a method, for example a computer-implemented method, for processing a data unit, for example a protocol data unit, for a device 100, 100a (FIGS. 1, 12) comprising a processing device 130, the method including a first number of input interfaces 110 for receiving a protocol data unit, a second number of output interfaces 120 for outputting a protocol data unit, and an execution 200 (FIG. 3) of a search in at least a first search tree B-1 based on a PDU identifier MSG-ID associated with the received protocol data unit PDU-1, the first search tree B-1 including an assignment Z of each one PDU identifier to a connection identifier characterizing at least one data connection.

[0086] In a further exemplary embodiment, it is contemplated that the method includes a determination 202 of a connection identifier VB-ID-1 associated with the received protocol data unit PDU-1 based on the received protocol data unit PDU-1.

[0087] In a further exemplary embodiment, it is contemplated that the processing device 130 comprises at least one hardware component 132, and that the execution 200 of the search in the first search tree B-1 and / or the determination 202 of the connection identifier VB-ID-1 associated with the received protocol data unit is performed by the at least one hardware component 132.

[0088] In a further exemplary embodiment, the processing device 130 comprises at least one software component 134, and the method is contemplated to include a) at least a temporary formation 210 of the search tree B-1 by the at least one software component 134 and / or b) at least a temporary modification 212 of the search tree B-1 by the at least one software component 134, for example a balance adjustment.

[0089] A further exemplary embodiment relates to an apparatus for performing the method according to the embodiment. The apparatus can, in a further exemplary embodiment, have at least one of the configurations 100, 100a already described above by way of example with reference to FIGS. 1, 12.

[0090] In a further exemplary embodiment, the apparatus can alternatively or complementarily comprise a configuration 300 shown, by way of example, in FIG. 15 or similar thereto. The apparatus 300 comprises a computing device (“computer”) 302 having at least one computing core 302a, 302b, 302c and a memory device 304 assigned to the computing device 302 for at least temporarily storing at least one of the elements a) data DAT, b) a computer program PRG, in particular for performing the method according to the embodiment.

[0091] In further exemplary embodiments, the memory device 304 has a volatile memory (e.g., main memory (RAM)) 304a, and / or a non-volatile memory (e.g., flash EEPROM) 304b, or a combination thereof, or a combination with other memory types not explicitly stated.

[0092] In further exemplary embodiments, the data DAT can include, at least temporarily, at least one received protocol data unit PDU-1, and / or at least a part of at least one search tree B-1, B-2, and / or related information, such as the red-black attribute of the color information characterizing the second search tree B-2.

[0093] In further exemplary embodiments, at least one of the buffer memories E5, E6, E8 according to FIG. 12 can be realized, for example, by the memory device 304 or the RAM 304a.

[0094] In further exemplary embodiments, the apparatus 300 includes at least one data interface 306 for receiving and / or transmitting data, such as protocol data units. In further exemplary embodiments, the data interface 306 can realize, for example, at least some of the input interface 110 (FIG. 1) and / or the output interface 120.

[0095] A further exemplary embodiment relates to a computer-readable storage medium SM including instructions that, when executed by a computer 302, cause the computer 302 to execute the method according to the embodiment.

[0096] A further preferred embodiment relates to a computer program PRG including instructions that, when executed by a computer 302, cause the computer 302 to execute the method according to the embodiment.

[0097] Further exemplary embodiments relate to a data carrier signal DCS that characterizes and / or transmits a computer program PRG according to an embodiment. The data carrier signal DCS can be transmitted, for example, via the data interface 306 of the device 300.

[0098] In further exemplary embodiments, the devices 100, 100a, 300 can be used, for example, for an automotive gateway, i.e., a gateway for application in the field of automotive technology, or in such an automotive gateway, and for example, for an incoming protocol data unit PDU-1 in the device, a respective connection identifier VB-ID-1 can be determined, for example, by hardware, and for example, based on the determined connection identifier VB-ID-1, the incoming protocol data unit PDU-1 can be output.

[0099] In further exemplary embodiments, the input interface 110 and / or the output interface 120 can also include, for example, at least one virtual interface each, rather than a physical interface.

[0100] In further exemplary embodiments, the virtual interface can be characterized, for example, in that individual data units, for example protocol data units, as so-called "contained PDUs", are present, for example, in Ethernet or UDP packets, for example, in so-called "container PDUs". In further exemplary embodiments, the contained PDUs can be separated from the container PDUs, for example, by a packet parser.

[0101] In further exemplary embodiments, a common data format or message format can be used, for example, by the device according to the embodiment, for processing the incoming protocol data unit PDU-1, regardless of the respective type (for example, L-PDU, I-PDU, N-PDU, S-PDU) of the incoming protocol data unit PDU-1.

[0102] In a further exemplary embodiment, the received protocol data unit PDU-1 is provided with a connection identifier VB-ID-1 that is, for example, protocol-independent or independent of the respective type of the incoming protocol data unit PDU-1 (e.g., L-PDU, I-PDU, N-PDU, S-PDU) based on, for example, discovery 200 (FIG. 3) or determination 202, and based thereon, routing, for example, forwarding of the protocol data unit PDU-1 to one or more (multicast) output interfaces can be performed by or in the device.

[0103] In a further exemplary embodiment, a modification of the PDU identifier PDU-ID can be selectively performed. In a further exemplary embodiment, an unknown protocol data unit (e.g., one for which discovery 200 or determination 202 was unsuccessful and thus no connection identifier associated with the PDU identifier PDU-ID was reached) can be further processed, for example, by a software component 134 or by a computer program provided for this purpose that performs a detailed analysis or a security analysis of the unknown protocol data unit.

[0104] In a further exemplary embodiment, the devices 100, 100a, 300 according to the embodiment can be used, for example, as a gateway, for example, as a one-way reverse-coupling device for an automotive gateway 10 (see FIG. 16). For example, the devices 100, 100a, 300 are configured to receive the protocol data unit PDU-1 from at least one output interface 12 of the gateway 10 and supply the protocol data unit PDU-1 to at least one input interface 11 of the gateway 10. For example, block 14 in FIG. 16 can have a configuration 100, 100a, 300 according to the exemplary embodiment described above as an example. Block arrow 13 represents, for example, the data flow in the gateway 10 from the input interface 11 to the output interface 12, which is associated with the processing pipeline of the gateway 10.

[0105] In further exemplary embodiments, the apparatuses 100, 100a, 300 are configured to receive data units, such as complete data units, such as protocol data units, for example serially ( "serialized"), from components of at least one output interface 12 of the gateway 10, for example.

[0106] In further exemplary embodiments, the apparatuses 100, 100a, 300 are configured to output the protocol data unit to be output in the same format as when it was received. In further exemplary embodiments, the apparatuses 100, 100a, 300 are configured to insert a connection identifier determined, for example, based on the discovery 200, into the received protocol data unit PDU-1.

[0107] In further exemplary embodiments, the apparatuses 100, 100a, 300 are configured to change the type of the received protocol data unit PDU-1, such as the message type.

[0108] In further exemplary embodiments, the apparatuses 100, 100a, 300 are configured to change, for example correct, the length of the received protocol data unit PDU-1 in a received padded data unit, for example associated with a CAN-FD data frame. In further exemplary embodiments, this may be useful when the received protocol data unit PDU-1 is transferred to another output interface (such as of CAN-FD type) in its actual (for example not affected by padding) length.

[0109] In further exemplary embodiments, the apparatuses 100, 100a, 300 are configured to load, for example dynamically, i.e., during operation of the apparatus, a table associated with at least one search tree B-1, B-2, or a table characterizing at least one search tree B-1, B-2, and the loaded data DAT can be stored, for example at least temporarily, in the memory device 304. Thus, in further exemplary embodiments, for example, the second search tree B-2 can be loaded into the apparatus from the outside, and at a predetermined time, for example at the time of reset of the apparatus, the content of the second search tree B-2 can be transmitted to the first search tree B-1, and thus thereafter, the first search tree B-1 having new content based on the loaded second search tree B-2 can be made available, for example, for the hardware-based search 200.

[0110] In further exemplary embodiments, the apparatuses 100, 100a, 300 can selectively use, for example, the search tree B-1, or the first search tree B-1 and the second search tree B-2, or the corresponding table. For example, in some exemplary embodiments, the memory area available for the search tree or the corresponding table is available for the search tree B-1 or the table. For example, in further exemplary embodiments, the memory area available for the search tree or the corresponding table is available for both search trees B-1, B-2 or the corresponding table. Thus, for example, in the case of two search trees, compared to the case of a single search tree B-1, the memory capacity for each search tree is essentially halved.

[0111] In further exemplary embodiments, the first buffer memory E5 can be used, for example, for rate adaptation, i.e., for adapting the rate at which, for example, the received protocol data unit PDU-1 is output via at least one output interface 120a of the second number of output interfaces 120. In further exemplary embodiments, the rate can be controlled 261 or adjusted 262 (FIG. 11).

[0112] In further exemplary embodiments, both the rate at which protocol data units are received by gateway 10 or its output interface 12 and the rate at which protocol data units are transmitted by gateway 10 or its input interface 11 can be predetermined, for example, by processing pipeline 14.

[0113] In further exemplary embodiments, apparatuses 100, 100a, 300 are configured to receive incoming protocol data units, for example, in the form of "bursts", i.e., intermittently.

[0114] In further exemplary embodiments, search device E1 is configured to operate at a rate that is not constant with respect to processing (e.g., searching). This is because, for example, in the first search tree B-1, individual searches 200 for different received protocol data units may take different amounts of time, for example.

[0115] In further exemplary embodiments, optional or selective security checks that can be activated for individual protocol data units, for example, by a firewall device (not shown), can also result in a non-constant processing speed for the protocol data units.

[0116] In further exemplary embodiments, such non-constant processing speeds can be at least partially compensated for or adjusted to a predetermined speed, for example, by using at least one of buffer memories E5, E6, E8.

[0117] In a further exemplary embodiment, the first buffer memory E5 is configured to output status information a6 to a component 12 of a gateway 10 that provides, for example, a protocol data unit PDU-1, where the component 12 indicates, for example, that a configurable first fill level of the first buffer memory E5, for example, has been reached. In a further exemplary embodiment, the first buffer memory E5 is configured not to output the status information a6 when, for example, it falls below a configurable first fill level (or a predetermined second fill level that may be different from the first fill level, for example, to achieve hysteresis) of the first buffer memory E5, for example.

[0118] A further exemplary embodiment (FIG. 17) relates to: a) the processing 401 of a data unit, such as a protocol data unit PDU-1, of a vehicle, such as an automobile; b) the determination 402, such as by a hardware component 132, of a connection identifier associated with the received protocol data unit PDU-1, such as by searching; c) the management 403 of at least one search tree B-1, B-2; d) the execution 404 of a hardware-based search for a connection identifier for a data unit, such as a protocol data unit, related to an automobile application, such as a gateway 10, where the search, for example, can be executed with a logarithmic function; e) the routing 405 or transmission of a data unit, such as a protocol data unit, of a vehicle, such as an automobile, where the data unit can, for example, have different types; f) the assignment 406 of a connection identifier that is, for example, protocol-independent; g) the execution 407 of a multicast transmission; h) the determination 408 as to whether a connection identifier is not provided, such as not stored, such as not included in a search tree B-1, for a given received data unit, such as a protocol data unit; i) the software-based processing 409 of a received data unit, such as a protocol data unit, for which a connection identifier is not provided, such as not stored, such as not included in a search tree. The embodiment relates to devices 100, 100a, 300 according to the embodiment, and / or a method according to the embodiment, and / or a computer-readable storage medium SM according to the embodiment, and / or a computer program PRG according to the embodiment, and / or a data carrier signal DCS according to the embodiment, and / or the use 400 of a gateway 10 according to the embodiment, and at least one of the elements described above.

Claims

1. An apparatus (100; 100a; 300) for processing data units, comprising a first number of input interfaces (110) for receiving protocol data units, a second number of output interfaces (120) for outputting the protocol data units, a processing device (130) configured to perform (200) a search in a first search tree (B-1) or in a second search tree (B-2) based on a PDU identifier (MSG-ID) associated to a received protocol data unit (PDU-1), and a multiplexer, said first search tree (B-1) comprising an assignment (Z) of a respective one of the PDU identifiers (MSG-ID) to a connection identifier (VB-ID-1) characterizing at least one data connection, the second search tree (B-2) is used when nodes are added or removed during runtime of the device (100; 100a; 300); The processing device (130) is capable of selectively accessing the first search tree (B-1) or the second search tree (B-2) to perform the search (200) by means of the multiplexer, an apparatus (100; 100a; 300).

2. The apparatus (100) of claim 1, wherein the apparatus (100) is configured to determine (202) a connection identifier (VB-ID-1) associated with the received protocol data unit (PDU-1) based on the received protocol data unit (PDU-1).

3. 2. The apparatus (100) of claim 1, wherein the processing device (130) comprises at least one hardware component (132), the at least one hardware component (132) configured to perform (200) the search in the first search tree (B-1) and / or to determine (202) the connection identifier (VB-ID-1) associated with the received protocol data unit (PDU-1).

4. The apparatus (100) of claim 1, wherein the first search tree (B-1) is a binary tree.

5. 3. The apparatus (100) of claim 2, further configured to output (204) the received protocol data unit (PDU-1) to at least one specific output interface (120a) of the second number of output interfaces (120) based on the connection identifier (VB-ID-1) associated with the received protocol data unit (PDU-1).

6. The apparatus (100) of claim 3, wherein the processing device (130) comprises at least one software component (134), the software component (134) configured to a) form (210) and / or b) modify (212) the first search tree (B-1), at least temporarily.

7. 7. The apparatus of claim 6, wherein the at least one software component is configured to perform a predetermined reaction (R) for the received protocol data unit (PDU-1) if a connection identifier (VB-ID-1) associated with the received protocol data unit (PDU-1) is not determinable (220), the predetermined reaction (R) comprising at least one of the following elements: a) discarding (225) the received protocol data unit (PDU-1); b) assigning (226) a configurable connection identifier (VB-ID-CFG) to the received protocol data unit (PDU-1); c) setting or inserting (227) first information (I1) regarding the received protocol data unit (PDU-1) in the form of a bit flag, the first information (I1) indicating that the received protocol data unit (PDU-1) should be checked by a firewall device.

8. The apparatus (100) of claim 3, wherein the apparatus (100) is configured to generate (230) and / or manage (232) the second search tree (B-2) based on the first search tree (B-1).

9. The apparatus (100) of claim 1, wherein a) the first search tree (B-1) and / or the second search tree (B-2) are red-black trees, and / or b) the apparatus (100) is configured to at least temporarily organize the first search tree (B-1) and / or the second search tree (B-2) in the form of at least one table.

10. 7. The apparatus (100) of claim 6, wherein the apparatus (100) is configured to: a) determine (240), by the at least one hardware component (132), based on the received protocol data unit (PDU-1), a connection identifier (VB-ID-1) associated with the received protocol data unit (PDU-1); and b) generate (242) and / or manage (244), by the at least one software component (134), the second search tree (B-2) based on the first search tree (B-1).

11. The apparatus (100) of claim 8, wherein the apparatus (100) is configured to perform at least one of the following elements: a) at least temporary use (250) of the first search tree (B-1) or the second search tree (B-2) for determining (202) a connection identifier (VB-ID-1) associated with the received protocol data unit (PDU-1); b) transmission (251) of the content and / or structure of the second search tree (B-2) to the first search tree (B-1); and c) transmission (252) of the content and / or structure of the first search tree (B-1) to the second search tree (B-2).

12. The apparatus (100) of claim 8, wherein the apparatus (100) is configured to signal (255) to the at least one hardware component (132) by the second information (I2) at least one of the following elements: a) that the first search tree (B-1) should be used for the execution (200) of the search; b) that the second search tree (B-2) should be used for the execution (200) of the search; and c) that modification of the first search tree (B-1) and / or the second search tree (B-2) has been completed.

13. The apparatus (100) of claim 12, wherein the apparatus (100) is configured to use (256) the first search tree (B-1) or the second search tree (B-2) for the execution (200) of the search based on the signal notification (255).

14. The apparatus (100) according to claim 13, wherein the apparatus (100) is configured to activate (257) the first search tree (B-1) or the second search tree (B-2) for a subsequent execution (200) of the search between two successive searches (200), by determining (257a) whether the first search tree (B-1) or the second search tree (B-2) should be used for the execution (200) of the search.

15. 2. The apparatus (100) of claim 1, wherein the apparatus (100) is configured to control (261) or adjust (262) a rate at which the protocol data units are output via at least one output interface (120) of the second number of output interfaces (120).

16. 2. An apparatus (100) according to claim 1, comprising at least one memory (E5, E6, E8) for at least temporarily storing one or more protocol data units or parts of one or more protocol data units.

17. The apparatus (100) of claim 1, comprising a conditioning device (E4) adapted to modify (266) a PDU identifier (MSG-ID) associated with a received protocol data unit (PDU-1).

18. A method performed by an apparatus (100), comprising a first number of input interfaces (110) for receiving protocol data units, a second number of output interfaces (120) for outputting protocol data units, a processing device (130), and a multiplexer, the method comprising: performing (200) a search by the processing device (130) in a first search tree (B-1) or in a second search tree (B-2) based on a PDU identifier (MSG-ID) associated with a received protocol data unit (PDU-1), the first search tree (B-1) comprising an assignment (Z) of each one of the PDU identifiers (MSG-ID) to a connection identifier (VB-ID-1) characterizing at least one data connection; the second search tree (B-2) is used when nodes are added or removed during runtime of the device (100; 100a; 300); The method of claim 1, wherein the processing device (130) is selectively able to access the first search tree (B-1) or the second search tree (B-2) by means of the multiplexer to perform the search (200).

19. 20. The method of claim 18, comprising determining (202) a connection identifier (VB-ID-1) associated with said received protocol data unit (PDU-1) based on said received protocol data unit (PDU-1).

20. 20. The method of claim 19, wherein the processing device (130) comprises at least one hardware component (132), and wherein the performing (200) of the search in the first search tree (B-1) and / or the determining (202) of the connection identifier (VB-ID-1) associated with the received protocol data unit (PDU-1) is performed by the at least one hardware component (132).

21. 20. The method of claim 18, wherein the processing device (130) comprises at least one software component (134), and the method includes a) at least temporarily forming (210) the first search tree (B-1) by the at least one software component (134), and / or b) at least temporarily modifying (212) the first search tree (B-1) by the at least one software component (134).

22. Apparatus (100; 100a; 300) for carrying out the method according to any one of claims 18 to 21.

23. A computer-readable storage medium (SM) having stored thereon a computer program (PRG) comprising instructions which, when executed by a computer (302), cause the computer (302) to perform the method according to any one of claims 18 to 21.

24. A computer program (PRG) comprising instructions which, when executed by a computer (302), cause the computer (302) to perform a method according to any one of claims 18 to 21.

25. A gateway (10) comprising at least one device (100; 100a; 300) according to any one of the preceding claims.

Citation Information

Patent Citations

  • Information relay method and system

    JP2000188608A

  • Trunk connecting unit

    JP2009049944A