Dmitry Eremin-Solenikov(lumag) replied on github web page:

include/odp/api/spec/pool.h
line 11
@@ -172,7 +172,20 @@ int odp_pool_capability(odp_pool_capability_t *capa);
 typedef struct odp_pool_param_t {
        /** Pool type */
        int type;
-
+       /** Flag to indicate whether user is requesting for contiguous
+           memory for buffers or packets in pool.
+           If TRUE, then address range for buffers or packets
+           must be returned by API as addr_start & addr_len.
+           If FALSE, then filling these parameters is optional.
+        */
+       odp_bool_t contig_mem;


Comment:
Got confused between single-segment packet and linear space for packets, sorry.

> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
> Yes the existing `seg_len` parameter is set to the minimum size segment that 
> the application requires. This can be set to be equal to `max_len` to require 
> single-segment packets.
> 
> However @sachin-saxena mentioned at SFO17 that VPP can deal with 
> multi-segment packets, though I'm not sure how that works.


>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>> VPP will not run on such platforms without modification. If the goal is to 
>> not modify VPP then an `odp_pool_capability()` output that says whether 
>> pools can present a linear interface. During Connect @psavol also mentioned 
>> that a separate API to get this info would be more appropriate than bending 
>> the input to `odp_pool_create()` to give output parameters.
>> 
>> My personal preference would be something like:
>> 
>> * `odp_pool_capability()` indicates whether pools can be created that 
>> provide linear addressing.
>> 
>> * An option on `odp_pool_create()` to request a linear pool.
>> 
>> * A new API (or an extension to the existing `odp_pool_info()` API) to get 
>> the mapping info that VPP needs.
>> 
>> That would seem to be more consistent with overall ODP structure.


>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>> What will happen for platforms where `odp_packet_t` is not mapped to the 
>>> virtual memory?


>>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>>> Isn't setting `seg_len` enough? Maybe we should provide an updated 
>>>> definition for `seg_len`  (e.g. in case `seg_len > max_len`, always use 
>>>> single segment).


https://github.com/Linaro/odp/pull/200#discussion_r142586714
updated_at 2017-10-04 06:02:01

Reply via email to