NETWORK INTERFACE WITH RESOURCE COORDINATOR
20230032563 · 2023-02-02
Inventors
- Nir Shlomo GROSS (Givhat-Shmuel, IL)
- Israel ZILBERSHMIDET (Netanya, IL)
- Barak CHERCHES (Ramat Ha'Kovesh, IL)
- David LEVY (Kiryat Gat, IL)
Cpc classification
H04L63/10
ELECTRICITY
International classification
Abstract
An integrated circuit includes: a processor; a receiver coupled to the processor; and memory coupled to the processor. The memory stores resource coordinator instructions that, when executed by the processor, cause the processor to: maintain a plurality of active secure sessions; identify a priority session trigger; and allocate receiver resources for incoming packets related to the plurality of active secure sessions based on the priority session trigger.
Claims
1. An integrated circuit, comprising: a processor; a receiver coupled to the processor; and memory coupled to the processor, the memory storing resource coordinator instructions that, when executed by the processor, causes the processor to: maintain a plurality of active secure sessions; identify a priority session trigger; and allocate receiver resources for incoming packets related to the plurality of active secure sessions based on the priority session trigger.
2. The integrated circuit of claim 1, wherein the resource coordinator instructions, when executed by the processor, cause the processor to: identify one of the plurality of active secure sessions as a priority session; and allocate receiver resources to incoming packets related to the priority session before allocating receiver resources to incoming packets related to others of the plurality active secure sessions.
3. The integrated circuit of claim 1, wherein the resource coordinator instructions, when executed by the processor, cause the processor to: identify one of the plurality of active secure sessions as a priority session; and prevent allocation of receiver resources to incoming packets related to active secure sessions not identified as the priority session.
4. The integrated circuit of claim 1, wherein the priority session trigger is based on a comparison of total receiver resources and in-use receiver resources.
5. The integrated circuit of claim 1, wherein the priority session trigger is based on a session record being complete to within a threshold amount.
6. The integrated circuit of claim 1, wherein the priority session trigger is based on incoming packet size and session record size.
7. The integrated circuit of claim 1, wherein the incoming packet size is for a Transmission Control Protocol (TCP) packet, and the session record size is for a Transport Layer Security (TLS) session record.
8. The integrated circuit of claim 1, wherein the receiver is part of a wireless transceiver.
9. The integrated circuit of claim 1, wherein the receiver resources includes memory resources.
10. A system, comprising: a processor; and a network interface coupled to the processor, the network interface is configured to: maintain a plurality of active secure sessions using the communication interface; identify a priority session trigger; and allocate resources for incoming packets related to the plurality of active secure sessions based on the priority session trigger.
11. The system of claim 10, wherein the network interface is configured to: identify one of the plurality of active secure sessions as a priority session; and allocate resources to incoming packets related to the priority session before allocating resources to incoming packets related to others of the plurality active secure sessions.
12. The system of claim 10, wherein the network interface is configured to: identify one of the plurality of active secure sessions as a priority session; and prevent allocation of resources to incoming packets related to active secure sessions not identified as the priority session.
13. The system of claim 10, wherein the priority session trigger is based on a comparison of total receiver resources and in-use receiver resources.
14. The system of claim 10, wherein the priority session trigger is based on a session record being complete to within a threshold amount.
15. The system of claim 10, wherein the priority session trigger is based on incoming packet size and session record size.
16. The system of claim 10, wherein the incoming packet size is for a Transmission Control Protocol (TCP) packet, and the session record size is for a Transport Layer Security (TLS) session record.
17. The system of claim 10, wherein the resources include memory resources.
18. A method performed by an integrated circuit (IC) with a network interface, the method comprising: maintaining, by the IC, a plurality of active secure sessions using the network interface; identifying, by the IC, a priority session trigger; and allocating, by the IC, memory resources for incoming packets related to the plurality of active secure sessions based on the priority session trigger.
19. The system of claim 18, further comprising: identifying one of the plurality of active secure sessions as a priority session; and prioritizing memory resources to incoming packets related to the priority session over incoming packets related to others of the plurality active secure sessions.
20. The method of claim 18, wherein identifying a priority session trigger comprises comparing total receiver resources and in-use receiver resources.
21. The method of claim 18, wherein identifying a priority session trigger comprises determining that a session record is complete to within a threshold amount.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013] The same reference numbers are used in the drawings to designate the same or similar (structurally and/or functionally) features.
DETAILED DESCRIPTION
[0014] In some example embodiments, a circuit with a network interface is configured to provide resource coordination for secure sessions and related incoming packets. In some example embodiments, the circuit is an integrated circuit (ICs) with on-chip components (e.g., a host processor and/or other components) as well as the network interface. The network interface supports communication protocols (e.g., Transmission Control Protocol (TCP)) and compatible security protocols (e.g., Transport Layer Security (TLS)). TLS is a middleware layer between application and TCP layers. In operation, the TLS layer builds records from data received from an upper layer and forwards the record to the TCP layer for transmission. The TLS layer is unaware of TCP windows and the decision to build a long record or a small one is a consequence of the received data stream from the upper layer. The TLS record length may be up to 16k bytes and a common TCP maximum segment size (MSS) is 1460 bytes, so a TLS record may include several TCP segments. At the receiver side, TLS record processing may start, but cannot be completed, without all related portions. Accordingly, the related portions are buffered by the receiver until all portions are received and TLS record processing is completed. After completion, the TLS record is transferred from the receiver to higher network layers (e.g., an application layer).
[0015] In some example embodiments, a circuit includes: a processor; a network interface coupled to the processor. The network interface is configured to: maintain a plurality of active secure sessions; identify a priority session trigger; and allocate network interface resources for incoming packets related to the plurality of active secure sessions based on the priority session trigger. In some example embodiments, the circuit includes: a receiver; a memory storing resource coordinator instructions; and a processor (e.g., a network processor separate from a host processor of the circuit) coupled to the receiver and the memory. When executed, the resource coordinator instructions cause the processor to: maintain a plurality of active secure sessions; identify a priority session trigger; and allocate receiver resources for incoming packets related to the plurality of active secure sessions based on the priority session trigger. In some example embodiments, the priority session trigger is based on a comparison of total receiver resources and in-use receiver resources. Additionally or alternatively, the priority session trigger is based on a session record being complete to within a threshold amount. Additionally or alternatively, the priority session trigger is based on incoming packet size and session record size. Other priority session triggers are possible.
[0016]
[0017] As shown, the circuit 100 includes a host processor 102 configured to execute host applications or user applications. The host applications or user applications are stored in memory 108, which may include random-access memory (RAM) and/or read-only memory (ROM). The host processor 102 may be an Advanced RISC (reduced instruct set computer) Machine or “ARM” processor. In some example embodiments, the host processor 102 includes a Joint Test Action Group (JTAG) interface. The circuit 100 also includes system management components 104. Without limitation, examples of the system management components 104 include: direct memory access (DMA) components, timers, general programmable inputs/output (GPIOs), and oscillators.
[0018] In the example of
[0019] In the example of
[0020] The circuit 100 also includes a resource coordinator 116. In some example embodiments, the resource coordinator 116 includes resource coordinator hardware and/or instructions, which enables the network interface 114 to: maintain a plurality of active secure sessions; identify a priority session trigger 122; and allocate receiver resources (e.g., related to receiver 120) for incoming packets related to the plurality of active secure sessions based on the priority session trigger 122. The priority session trigger 122 may be based on a comparison of total receiver resources and in-use receiver resources, a session record being complete to within a threshold amount, incoming packet size, session record size, and/or other parameters. In some example embodiments, the incoming packet size is for a TCP packet, and the session record size is for a TLS session record.
[0021] In some examples, resource coordinator instructions, when executed, cause a processor (e.g., a network processor of the network interface 114 in
[0022] In the example of
[0023]
[0024] In the example of
[0025] In some example the resource coordinator 116A, when executed, causes a processor to: identify one of the plurality of active secure sessions as a priority session; and allocate resources to incoming packets related to the priority session before allocating resources to incoming packets related to others of the plurality active secure sessions. As another option, the resource coordinator 116A, when executed, causes a processor to: identify one of the plurality of active secure sessions as a priority session; and prevent allocation of resources to incoming packets related to active secure sessions not identified as the priority session. In some example embodiments, the allocated resources include memory resources, receiver buffers, receiver packets, packet descriptors, control blocks, and/or other receiver resources.
[0026]
[0027]
[0028] In the secure session 400, packets 941-951 are part of a SSL/TLS record 402. Accordingly, the TLS record 402 and its related packets 941-951 will not released until all of the packets 941-951 have been received. As the number of secure sessions (e.g., the secure session 400) maintained at a time is increased, the value of resource coordination increases. In the example of
[0029] When a TLS connection has been established (i.e. “open” TLS connection), a related circuit or system needs to allocate at least a memory range (e.g., receiver buffers or “Rx” buffers) of 16K bytes for a receiver. Conventionally, every “open” TLS connection requires allocation of at least 16K bytes of Rx buffers, and those Rx buffers cannot be shared between “open” TLS connections. At saturation, less available memory resources will cause a deadlock and TCP disconnection. This conventional approach causes inefficient memory usage due to the inability to share Rx buffers between TLS connections.
[0030]
[0031] In some example embodiments, resource coordination enables dynamic Rx buffer allocation with the ability of sharing buffers between multiple “open” TLS connections. With resource coordination, several “open” TLS connections are maintained, where a shared memory pool is used to serve multiple connections simultaneously by dynamic allocation of Rx buffers. The implication is a substantial memory reduction since resource coordination enables the total available memory range for all “open” TLS connections to be much less than the maximum theoretical memory range needed for TLS connections (e.g., the total Rx buffers can be much less than 16K bytes times the number of open TLS connections).
[0032] In order to implement resource coordination, a circuit (e.g., the circuit 100 in
[0033] In some example embodiments, the resource coordinator act as a middleware layer between the TCP and the TLS layers. When a TCP segment is received by the TCP layer and before the TCP protocol sends an acknowledge, the resource coordinator rejects or accepts the segment. Example operations of the resource coordinator include: accept an incoming TCP segment if the TCP segment is part of a TLS record and its Rx record requirements can be satisfied by the shared memory pool; or reject an incoming TCP segment and prior unacknowledged TCP segments if a TLS record cannot be satisfied currently by the shared memory pool. As needed, rejected TCP segments will be retransmitted by another circuit, when the related TCP retransmission timers expires.
[0034] Conventional approaches may use the following methods: limit the number of “open” TLS connections at a time; have enough memory to serve all open TLS connections simultaneously; and/or let the TCP protocol disconnect a TCP connection when TCP retransmission is expired. In that case, the memory resources for a connection are released and are available for other connections. In contrast, the described resource coordinator controls allocation of Rx buffers based on information related to open connections, upper layer parameters, and/or lower layer parameters. Example information used by the resource coordinator to control allocation of Rx buffers (or other receiver resources) includes: TLS Record size; TCP MSS; TCP window size; historical statistical information on the connection such as round trip time (RTT); number of disconnections; amount of traffic on a session; traffic type and quality of service indicators; first packet reception time; disconnect prediction; and/or other information.
[0035]
[0036] In some example embodiments, the method 600 also includes: identifying one of the plurality of active secure sessions as a priority session; and prioritizing memory resources to incoming packets related to the priority session over incoming packets related to others of the plurality active secure sessions. In some example embodiments, identifying a priority session trigger involves comparing total receiver resources and in-use receiver resources.
[0037] In this description, the term “couple” may cover connections, communications, or signal paths that enable a functional relationship consistent with this description. For example, if device A generates a signal to control device B to perform an action: (a) in a first example, device A is coupled to device B by direct connection; or (b) in a second example, device A is coupled to device B through intervening component C if intervening component C does not alter the functional relationship between device A and device B, such that device B is controlled by device A via the control signal generated by device A.
[0038] A device that is “configured to” perform a task or function may be configured (e.g., programmed and/or hardwired) at a time of manufacturing by a manufacturer to perform the function and/or may be configurable (or re-configurable) by a user after manufacturing to perform the function and/or other additional or alternative functions. The configuring may be through firmware and/or software programming of the device, through a construction and/or layout of hardware components and interconnections of the device, or a combination thereof.
[0039] A circuit or device that is described herein as including certain components may instead be adapted to be coupled to those components to form the described circuitry or device. For example, a structure described as including one or more semiconductor elements (such as transistors), one or more passive elements (such as resistors, capacitors, and/or inductors), and/or one or more sources (such as voltage and/or current sources) may instead include only the semiconductor elements within a single physical device (e.g., a semiconductor die and/or integrated circuit (IC) package) and may be adapted to be coupled to at least some of the passive elements and/or the sources to form the described structure either at a time of manufacture or after a time of manufacture, for example, by an end-user and/or a third-party.
[0040] Circuits described herein are reconfigurable to include the replaced components to provide functionality at least partially similar to functionality available prior to the component replacement. Components shown as resistors, unless otherwise stated, are generally representative of any one or more elements coupled in series and/or parallel to provide an amount of impedance represented by the shown resistor. For example, a resistor or capacitor shown and described herein as a single component may instead be multiple resistors or capacitors, respectively, coupled in parallel between the same nodes. For example, a resistor or capacitor shown and described herein as a single component may instead be multiple resistors or capacitors, respectively, coupled in series between the same two nodes as the single resistor or capacitor. Unless otherwise stated, “about,” “approximately,” or “substantially” preceding a value means +/- 10 percent of the stated value.
[0041] Modifications are possible in the described embodiments, and other embodiments are possible, within the scope of the claims.