IP Library Granted Patent US 9,582,342
Granted Patent B2
US 9,582,342 · App. 14/694,566 · Granted Feb 28, 2017

API constraint language for a communication device

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 9,582,342
App. No.
14/694,566
Granted
Feb 28, 2017
Kind
B2
Abstract

A communication device and associated method which is configured to utilize an API constraint language for communication of resource constraints between different layers of a communication stack. A first layer of the communication stack executing in a first communication device may receive application programming interface (API) messages from a second layer of the communication stack also executing in the first communication device. In addition, the first layer may receive resource constraints with the one or more API messages. These one or more resource constraints may be generated by the second layer, or other software executing in the communication device. The first layer may then execute communication functions based on the API messages and subject to the resource constraints. The resource constraints may affect usage of hardware and/or software resources of the first communication device during execution of the communication functions.

Claims (67)

1. A method for communicating within a communication stack comprising layers, the method comprising:

receiving, by a first layer of the communication stack executing in a first communication device, one or more application programming interface (API) messages from a second layer of the communication stack executing in the first communication device;

receiving, by the first layer, one or more resource constraints with the one or more API messages, wherein said receiving the one or more resource constraints comprises receiving an API Constraint Vector, wherein the API Constraint Vector (ACV) is a data structure comprising the one or more resource constraints, wherein the ACV comprises a plurality of fields which are predefined to store information regarding respective ones of the resource constraints; and

executing, by the first layer, one or more communication functions based on the one or more API messages and subject to the one or more resource constraints, wherein the one or more resource constraints affect usage of one or more hardware and/or software resources of the first communication device during execution of the one or more communication functions.

2. The method of claim 1 ,

wherein the one or more resource constraints affect one or more of timing, latency, throughput, priority or performance of the one or more communication functions.

3. The method of claim 1 ,

wherein the one or more resource constraints specify dynamic allocation of the one or more hardware and/or software resources on the first communication device during execution of the one or more communication functions.

4. The method of claim 1 ,

wherein the hardware resources comprise one or more of central processing unit (CPU) time, bus bandwidth, and/or memory allocation.

5. The method of claim 1 ,

wherein the one or more resource constraints are useable by any one of a plurality of possible hardware target types executing the first layer, including general purpose processor, graphical processing unit, digital signal processor, or programmable hardware element.

6. The method of claim 1 ,

wherein said executing comprises ensuring that the one or more communication functions are executed subject to the one or more resource constraints.

7. The method of claim 1 , further comprising:

measuring if the one or more resource constraints are satisfied; and

providing feedback to the second layer based on said measuring.

8. The method of claim 1 ,

wherein the one or more resource constraints are dynamically determined during operation of the first communication device based on current communication conditions.

9. The method of claim 8 ,

wherein the current communication conditions comprise a current quality of a communication channel being used by the first communication device.

10. A non-transitory computer readable memory medium comprising program instructions which implement a first layer of a communication stack, wherein the first layer of the communication stack executes on a first communication device, wherein the program instructions are executable to:

receive one or more application programming interface (API) messages from a second layer of the communication stack executing in the first communication device;

receive one or more resource constraints with the one or more API messages wherein, in receiving the one or more resource constraints, the program instructions are executable to receive an API Constraint Vector, wherein the API Constraint Vector (ACV) is a data structure comprising the one or more resource constraints, wherein the ACV comprises a plurality of fields which are predefined to store information regarding respective ones of the resource constraints; and

execute one or more communication functions based on the one or more API messages and subject to the one or more resource constraints, wherein the one or more resource constraints affect usage of one or more hardware and/or software resources of the first communication device during execution of the one or more communication functions.

11. The non-transitory computer readable memory medium of claim 10 ,

wherein the one or more resource constraints affect one or more of timing, latency, throughput, priority or performance of the one or more communication functions.

12. The non-transitory computer readable memory medium of claim 10 ,

wherein the one or more resource constraints specify dynamic allocation of the one or more hardware and/or software resources on the first communication device during execution of the one or more communication functions.

13. The non-transitory computer readable memory medium of claim 10 ,

wherein the hardware resources comprise one or more of central processing unit (CPU) time, bus bandwidth, or memory allocation.

14. The non-transitory computer readable memory medium of claim 10 ,

wherein the one or more resource constraints are useable by any one of a plurality of possible hardware target types executing the first layer, including general purpose processor, graphical processing unit, digital signal processor, or programmable hardware element.

15. The non-transitory computer readable memory medium of claim 10 ,

wherein the program instructions further execute to ensure that the one or more communication functions are executed subject to the one or more resource constraints.

16. The non-transitory computer readable memory medium of claim 10 , wherein the program instructions are further executable to:

measure if the one or more resource constraints are satisfied; and

provide feedback to the second layer based on said measuring.

17. The non-transitory computer readable memory medium of claim 10 ,

wherein the one or more resource constraints are dynamically determined during operation of the first communication device based on current communication conditions.

18. The non-transitory computer readable memory medium of claim 17 ,

wherein the current communication conditions comprise a current quality of a communication channel being used by the first communication device.

19. A communication device, comprising

at least one antenna for performing wireless communication;

transmit/receive circuitry coupled to the at least one antenna

at least one processing element coupled to the transmit/receive circuitry;

a memory coupled to the at least one processing element which stores a protocol stack that is executable by the at least one processing element to perform communication functions in the communication device, wherein the protocol stack comprises a plurality of layers including at least a first layer and a second layer;

wherein a first layer executing on the at least one processing element is configured to:

receive one or more application programming interface (API) messages from a second layer of the communication stack;

receive one or more hardware resource constraints with the one or more API messages, wherein said receiving the one or more hardware resource constraints comprises receiving an API Constraint Vector, wherein the API Constraint Vector (ACV) is a data structure comprising the one or more hardware resource constraints, wherein the ACV comprises a plurality of fields which are predefined to store information regarding respective ones of the hardware resource constraints; and

execute, by the first layer, one or more communication functions based on the one or more API messages and subject to the one or more hardware resource constraints, wherein the one or more hardware resource constraints affect usage of one or more hardware resources of the first communication device.

20. The communication device of claim 19 ,

wherein the at least one processing element is a programmable hardware element;

wherein the programmable hardware element is configured to implement the first layer;

wherein the programmable hardware element is further configured to implement functionality to perform the one or more communication functions of the first layer subject to the one or more resource constraints.

21. The communication device of claim 20 ,

wherein the programmable hardware element is further configured to dynamically allocate hardware resources of the communication device based on the one or more constraints, wherein the hardware resources include the programmable hardware element and at least one other hardware resource of the communication device.

22. A method for communicating within a communication stack comprising software layers, the method comprising:

performing, by a first layer of the communication stack,

generating one or more application programming interface (API) messages for provision to a second layer of the communication stack;

specifying one or more resource constraints in response to current communication conditions, wherein the one or more resource constraints are intended for a second layer of the communication stack, wherein the one or more resource constraints are comprised within an API Constraint Vector (ACV), wherein the ACV comprises a plurality of fields which are predefined to store information regarding respective ones of the resource constraints; and

transmitting the one or more API messages and the one or more resource constraints to the second layer of the communication stack,

wherein the one or more resource constraints are useable by the second layer to affect usage of one or more hardware and/or software resources during execution of communication functions based on the one or more API messages.

23. The method of claim 22 ,

wherein the one or more resource constraints are one or more of timing related, latency related, throughput related, priority related or end to end performance metric related.

24. The method of claim 22 ,

wherein the one or more constraints are operable to be transmitted to any one of a plurality of possible hardware targets executing the second layer, including general purpose processor, graphical processing unit, or programmable hardware element.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2015
From: GUPTA, ROHIT; KUNDARGI, NIKHIL U.; EKBAL, AMAL; NAHLER, ACHIM
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 035611/0107 →