Bill Fischofer(Bill-Fischofer-Linaro) 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:
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_r142575835
updated_at 2017-10-04 03:46:57

Reply via email to