IP Library Granted Patent US 10,911,292
Granted Patent B1
US 10,911,292 · App. 15/637,568 · Granted Feb 2, 2021

Controlling peer-to-peer communication

Inventors: Nafea Bshara (San Jose, CA); Robert Michael Johnson (Austin, TX); Asif Khan (Cedar Park, TX); Stanislav Spassov (Dresden, DE); Christopher Joseph Pettey (Cedar Park, TX)
Assignee: Amazon Technologies, Inc.
H04L29/08H04M11/06G06F9/00H04L29/00H04L43/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,911,292
App. No.
15/637,568
Granted
Feb 2, 2021
Kind
B1
Abstract

Access control is provided for peer-to-peer communication between a source peripheral device and a destination peripheral device without going through a host device. The access control mechanism can allow or block a request for a transaction to go out via a port of the source peripheral device to the destination peripheral device by comparing an attribute associated with the transaction with a filter attribute stored in memory. Embodiments of the disclosed technologies can allow programming of different filter attributes for different tenants in a multi-tenant environment.

Claims (36)

1. A computer-implemented method for controlling communication between peripheral devices in a computing system, the method comprising:

receiving, by an apparatus within a source peripheral device, a request for a peer-to-peer transaction between the source peripheral device and a destination peripheral device, the request comprising an attribute associated with the transaction, wherein the attribute includes a type of transaction and a QoS attribute, wherein the source peripheral device and the destination peripheral device are communicatively coupled to a host device via a switch device using respective peripheral component interconnect (PCI) express interfaces;

comparing the attribute associated with the transaction with a filter attribute stored in memory of the apparatus, wherein the filter attribute includes types of transactions and QoS attributes;

determining, based on the comparison, whether the request is allowed to go to the destination peripheral device via a port coupled to the apparatus without transmitting the transaction to the host device; and

in response to determining, based on the comparison, that the attribute corresponds to the filter attribute, transmitting the transaction to the destination peripheral device via the port without transmitting the transaction to the host device, wherein the request is allowed to go via the port if the type of transaction is included in the types of transactions and the QoS attribute is included in the QoS attributes.

2. The computer-implemented method of claim 1 , wherein the attribute associated with the transaction includes an address and the filter attribute includes an address range.

3. The computer-implemented method of claim 2 , wherein the request is allowed to go via the port if the address lies within the address range.

4. The computer-implemented method of claim 2 , wherein the request is not allowed to go out via the port if the address lies within the address range.

5. An apparatus comprising:

an input interface for receiving a request by the apparatus for a peer-to-peer transaction between a source peripheral device and a destination peripheral device, the source peripheral device and the destination peripheral device communicatively coupled to a host device, the request comprising an attribute associated with the transaction, wherein the attribute includes a type of transaction and a QoS attribute, wherein the apparatus is part of the source peripheral device, and wherein the source peripheral device is coupled to the destination peripheral device through a switch device;

memory for storing a filter attribute associated with the destination peripheral device, wherein the filter attribute includes types of transactions and QoS attributes;

an access control manager for controlling access to the destination peripheral device for the peer-to-peer transaction based on a comparison of the attribute associated with the transaction with the filter attribute stored in the memory; and

an output interface for transmitting the transaction to the destination peripheral device via a port coupled to the apparatus without transmitting the transaction to the host device;

wherein the apparatus is configured to transmit the transaction to the destination peripheral device via the port without transmitting the transaction to the host device in response to determining, based on the comparison, that the attribute corresponds to the filter attribute, wherein the request is allowed to go via the port if the type of transaction is included in the types of transactions and the QoS attribute is included in the QoS attributes.

6. The apparatus of claim 5 , wherein the attribute associated with the transaction includes an address and the filter attribute includes an address range.

7. The apparatus of claim 6 , wherein controlling the access includes allowing the access to the destination peripheral device for the peer-to-peer transaction if the address lies within the address range.

8. The apparatus of claim 6 , wherein controlling the access includes blocking the access to the destination peripheral device for the peer-to-peer transaction if the address lies within the address range.

9. The apparatus of claim 5 , wherein the memory includes a register and wherein the filter attribute associated with the destination peripheral device is stored in the register.

10. The apparatus of claim 5 , wherein the filter attribute is a first filter attribute associated with a first tenant from a plurality of tenants for the source peripheral device, and wherein the memory further stores a second filter attribute associated with a second tenant from the plurality of tenants.

11. The apparatus of claim 5 , wherein the filter attribute is a first filter attribute associated with a first function, and wherein the memory further stores a second filter attribute associated with a second function.

12. The apparatus of claim 5 , wherein the source peripheral device and the destination peripheral device are communicatively coupled to the host device using a respective peripheral component interconnect (PCI) express interface.

13. The apparatus of claim 12 , wherein the filter attribute is stored in a PCI express configuration space associated with the source peripheral device.

14. The apparatus of claim 5 , wherein the source peripheral device is memory mapped in an address space of the host device.

15. The apparatus of claim 14 , wherein the memory for storing the filter attribute corresponds to the address space associated with the source peripheral device.

16. The apparatus of claim 5 , wherein the access control manager includes a comparator circuit to compare the attribute associated with the transaction with the filter attribute stored in the memory.

17. The apparatus of claim 5 , wherein the attribute includes an address, a type of the transaction, a quality of service attribute, or a tag.

18. A system comprising:

a first peripheral device communicatively coupled to a host device;

a second peripheral device communicatively coupled to the host device, wherein:

the first peripheral device comprises a first apparatus to allow or block a first request to go via a first port of the first peripheral device for a first peer-to-peer transaction with the second peripheral device without transmitting the first transaction to the host device, wherein the first peripheral device comprises memory for storing a filter attribute associated with the second peripheral device, wherein the filter attribute includes types of transactions and QoS attributes; and

the second peripheral device comprises a second apparatus to allow or block a second request to go out via a second port of the second peripheral device for a second peer-to-peer transaction with the first peripheral device without transmitting the second transaction to the host device;

an input interface for receiving the first request for the first peer-to-peer transaction with the second peripheral device, the first request comprising an attribute associated with the first transaction, wherein the attribute includes a type of transaction and a QoS attribute; and

an access control manager for comparing the attribute associated with the first transaction with the filter attribute stored in the memory to allow or block the first request;

wherein the first peripheral device is configured to transmit the first transaction to the second peripheral device via the first port without transmitting the first transaction to the host device in response to determining, based on the comparison, that the attribute corresponds to the filter attribute, wherein the request is allowed to go via the port if the type of transaction is included in the types of transactions and the QoS attribute is included in the QoS attributes.

19. The system of claim 18 , wherein the first apparatus includes:

an output interface for transmitting the first transaction to the second peripheral device via the first port of the first peripheral device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2017
From: BSHARA, NAFEA; JOHNSON, ROBERT MICHAEL; KHAN, ASIF; SPASSOV, STANISLAV; PETTEY, CHRISTOPHER JOSEPH
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 043720/0048 →
Continuity (1)
Provisional Application 62479188 · Mar 30, 2017
Cited By (2)
US 12,236,260 US 12,689,890