Allocating peripheral component interface express (PCIE) streams in a configurable multiport PCIE controller
Allocating peripheral component interface express (PCIe) streams in a configurable multiport PCIe controller, including: detecting, by a PCIe controller, a link by a first PCIe device; and allocating, for the link between the PCIe controller and the first PCIe device, a first one or more PCIe streams from a pool of PCIe streams.
1 . A method of allocating peripheral component interface express (PCIe) streams in a configurable multiport PCIe controller, the method comprising:
detecting, by a PCIe controller, a link with a first PCIe device; and
allocating, for the link between the PCIe controller and the first PCIe device, a first one or more PCIe streams from a pool of PCIe streams, wherein a PCIe stream comprises a logically defined encrypted communications session between the PCIe controller and a PCIe device using one or more encryption keys.
2 . The method of claim 1 , wherein allocating the first one or more PCIe streams comprises:
receiving, from the first PCIe device, data indicating a number of requested streams for the first PCIe device and a number of PCIe lanes used by the first PCIe device, wherein the first one or more PCIe streams are allocated based on the number of requested streams and the number of PCIe lanes.
3 . The method of claim 1 , wherein the first one or more PCIe streams are allocated proportional to a number of lanes used by the first PCIe device.
4 . The method of claim 1 , further comprising:
detecting, by the PCIe controller, another link with a second PCIe device; and
allocating, to the second PCIe device, a second one or more PCIe streams from the pool of PCIe streams.
5 . The method of claim 4 , wherein allocating the second one or more PCIe streams comprises reallocating at least one of the first one or more PCIe streams from the first PCIe device to the second PCIe device.
6 . The method of claim 1 , further comprising:
detecting a removal of the first PCIe device; and
releasing the first one or more PCIe streams.
7 . The method of claim 6 , further comprising reallocating one or more of the first one or more PCIe streams to one or more other PCIe devices.
8 . A multiport peripheral component interface express (PCIe) controller comprising a processor and memory, the memory comprising computer program instructions that, when executed by the processor, are configured to:
detect a link with a first PCIe device; and
allocate, for the link between the PCIe controller and the first PCIe device, a first one or more PCIe streams from a pool of PCIe streams, wherein a PCIe stream comprises a logically defined encrypted communications session between the PCIe controller and a PCIe device using one or more encryption keys.
9 . The multiport PCIe controller of claim 8 , wherein the first one or more PCIe streams are allocated by:
receiving, from the first PCIe device, data indicating a number of requested streams for the first PCIe device and a number of PCIe lanes used by the first PCIe device, wherein the first one or more PCIe streams are allocated based on the number of requested streams and the number of PCIe lanes.
10 . The multiport PCIe controller of claim 8 , wherein the first one or more PCIe streams are allocated proportional to a number of lanes used by the first PCIe device.
11 . The multiport PCIe controller of claim 8 , further comprising computer program instructions that, when executed by the processor, are configured to:
detect, by the multiport PCIe controller, another link with a second PCIe device; and
allocate, to the second PCIe device, a second one or more PCIe streams from the pool of PCIe streams.
12 . The multiport PCIe controller of claim 11 , wherein allocating the second one or more PCIe streams comprises reallocating at least one of the first one or more PCIe streams from the first PCIe device to the second PCIe device.
13 . The multiport PCIe controller of claim 8 , further comprising computer program instructions that, when executed by the processor, are configured to:
detect a removal of the first PCIe device; and
release the first one or more PCIe streams.
14 . The multiport PCIe controller of claim 13 , further comprising computer program instructions that, when executed by the processor, are configured to reallocate one or more of the first one or more PCIe streams to one or more other PCIe devices.
15 . An apparatus for allocating peripheral component interface express (PCIe) streams in a configurable multiport PCIe controller, comprising:
a processor; and
a PCIe controller operatively coupled to the processor, the PCIe controller configured to:
detect a link with a first PCIe device; and
allocate, for the link between the PCIe controller and the first PCIe device, a first one or more PCIe streams from a pool of PCIe streams, wherein a PCIe stream comprises a logically defined encrypted communications session between the PCIe controller and a PCIe device using one or more encryption keys.
16 . The apparatus of claim 15 , wherein the first one or more PCIe streams are allocated by:
receiving, from the first PCIe device, data indicating a number of requested streams for the first PCIe device and a number of PCIe lanes used by the first PCIe device, wherein the first one or more PCIe streams are allocated based on the number of requested streams and the number of PCIe lanes.
17 . The apparatus of claim 15 , wherein the first one or more PCIe streams are allocated proportional to a number of lanes used by the first PCIe device.
18 . The apparatus of claim 15 , wherein the PCIe controller is further configured to:
detect another link with a second PCIe device; and
allocate, to the second PCIe device, a second one or more PCIe streams from the pool of PCIe streams.
19 . The apparatus of claim 18 , wherein the second one or more PCIe streams are allocated by reallocating at least one of the first one or more PCIe streams from the first PCIe device to the second PCIe device.
20 . The apparatus of claim 15 , wherein the PCIe controller is further configured to:
detect a removal of the first PCIe device; and
release the first one or more PCIe streams.