In addition to the control plane drivers, the DPI wrapper provides the following optional utility functions:
-
XilVitisNetP4DpiByteArrayCreate() -
XilVitisNetP4DpiStringToByteArray()
These two functions help the testbench consume key-response entries from a text
file and convert them into byte arrays before passing them to a control plane driver
function such as XilVitisNetP4BcamInsert(). It is
possible to implement this code solely in SystemVerilog, if so desired.
Any function described above with a name ending in *Create() has a counterpart that ends with *Destroy(). The *Create()
functions allocate memory inside the DPI library and the
*Destroy() counterparts release the memory. It is good practice to call the
*Destroy() functions after the memory that has been
allocated is no longer required, such as towards the end of the simulation's
execution.