p4lang / pna

Portable NIC Architecture
Apache License 2.0
54 stars 21 forks source link

Issue #89: Description of Extern Objects for Inline Accelerators #103

Closed pbhide closed 1 year ago

pbhide commented 1 year ago

@jafingerhut @thomascalvert-xlnx @mariobaldi Since extern objects is one of the ways to represent inline accelerators.. I have added it as an example in the spec. Let me know if you had something else in mind.

I have not done the preview of the .mdk changes.. hopefully they are ok.. I'll work on that while you review the text.

jafingerhut commented 1 year ago

So perhaps this is too much "angels dancing on the head of a pin" distinction I am making here, but one view is that the extern object you have defined isn't "the accelerator itself" that does the encryption and decryption on the packet, but instead the extern object merely provides an API (via method calls) for setting parameters that are inputs to the accelerator, and for viewing outputs from the accelerator (e.g. the error status).

I will take a look at the PR soon and add any review comments there.

mariobaldi commented 1 year ago

This is also my understanding.

So perhaps this is too much "angels dancing on the head of a pin" distinction I am making here, but one view is that the extern object you have defined isn't "the accelerator itself" that does the encryption and decryption on the packet, but instead the extern object merely provides an API (via method calls) for setting parameters that are inputs to the accelerator, and for viewing outputs from the accelerator (e.g. the error status).

This is also my understanding and I believe the text Parag added to the mdk description reflects this.

All looks good to me.

pbhide commented 1 year ago

I have added some description indicating that object methods are used to communicate information to/from the accelerator. Also took @thomascalvert-xlnx suggestion to add/remind about placement of the accelerators. That should clarify the point you are making.