Hi Bill, As you have noted above, when all the 5 patches are applied together they will compile fine but patch 2 depends on patch 3 and it does not compile in parts as of now.
I would like to get review on the patches in this setup and before upstreaming I will merge these patches to make sure they compile individually. Pls let me know your opinion on this Regards, Bala On 24 November 2015 at 15:08, Bill Fischofer <[email protected]> wrote: > I ran the ./apply-and-build.sh script in check_odp, which, among other > things, tests whether the patch series is properly organized such that the > result is buildable and the validation tests pass after each part is applied > sequentially (necessary for biscectabilty of a patch series). It reports > that Part 1 is OK, but the build fails after Part 2, implying that Part 2 is > incomplete and requires items only found in subsequent parts. > > On Mon, Nov 23, 2015 at 11:23 PM, Bala Manoharan <[email protected]> > wrote: >> >> Hi Bill, >> >> I just tried the build and it seems to work fine on the latest API-NEXT >> branch. >> >> Did you mean it is not working after applying only part 2 of the patch >> ignoring the rest? All the 5 patches are dependent on each other since >> the changes are across two modules classification and pktio. >> >> I can redo the patches to make them individually compilable if it is a >> must requirement but I would prefer review comments on this series so >> that I can update them together in the next version. >> >> Regards, >> Bala >> >> On 24 November 2015 at 06:03, Bill Fischofer <[email protected]> >> wrote: >> > apply-and-build fails for Part 2: >> > >> > Making all in platform/linux-generic >> > make[1]: Entering directory >> > '/home/bill/linaro/check-odp/build/odp-apply/platform/linux-generic' >> > CC odp_barrier.lo >> > CC odp_buffer.lo >> > CC odp_classification.lo >> > CC odp_cpu.lo >> > CC odp_cpumask.lo >> > CC odp_cpumask_task.lo >> > CC odp_crypto.lo >> > CC odp_errno.lo >> > CC odp_event.lo >> > CC odp_hash.lo >> > CC odp_init.lo >> > CC odp_impl.lo >> > CC odp_packet.lo >> > CC odp_packet_flags.lo >> > CC odp_packet_io.lo >> > odp_packet.c:35:6: error: conflicting types for 'packet_parse_reset' >> > void packet_parse_reset(odp_packet_t pkt) >> > ^ >> > In file included from odp_packet.c:8:0: >> > ./include/odp_packet_internal.h:248:6: note: previous declaration of >> > 'packet_parse_reset' was here >> > void packet_parse_reset(odp_packet_hdr_t *pkt_hdr); >> > ^ >> > Makefile:735: recipe for target 'odp_packet.lo' failed >> > make[1]: *** [odp_packet.lo] Error 1 >> > >> > On Mon, Nov 23, 2015 at 4:12 AM, Balasubramanian Manoharan >> > <[email protected]> wrote: >> >> >> >> Adds linux-generic internal api's and modify internal structs to >> >> support >> >> configuring packet pool to CoS. >> >> >> >> Signed-off-by: Balasubramanian Manoharan <[email protected]> >> >> --- >> >> platform/linux-generic/include/odp_classification_datamodel.h | 1 + >> >> platform/linux-generic/include/odp_classification_internal.h | 3 +++ >> >> platform/linux-generic/include/odp_packet_internal.h | 8 >> >> +++++++- >> >> platform/linux-generic/include/odp_packet_io_internal.h | 4 ++++ >> >> platform/linux-generic/include/odp_packet_socket.h | 2 ++ >> >> 5 files changed, 17 insertions(+), 1 deletion(-) >> >> >> >> diff --git >> >> a/platform/linux-generic/include/odp_classification_datamodel.h >> >> b/platform/linux-generic/include/odp_classification_datamodel.h >> >> index 4358fca..3569e9c 100644 >> >> --- a/platform/linux-generic/include/odp_classification_datamodel.h >> >> +++ b/platform/linux-generic/include/odp_classification_datamodel.h >> >> @@ -67,6 +67,7 @@ Class Of Service >> >> struct cos_s { >> >> queue_entry_t *queue; /* Associated Queue */ >> >> pool_entry_t *pool; /* Associated Buffer pool */ >> >> + odp_pool_t pool_id; /* Associated pool handle */ >> >> union pmr_u *pmr; /* Chained PMR */ >> >> union cos_u *linked_cos; /* CoS linked with the PMR */ >> >> uint32_t valid; /* validity Flag */ >> >> diff --git >> >> a/platform/linux-generic/include/odp_classification_internal.h >> >> b/platform/linux-generic/include/odp_classification_internal.h >> >> index 5593280..7e46986 100644 >> >> --- a/platform/linux-generic/include/odp_classification_internal.h >> >> +++ b/platform/linux-generic/include/odp_classification_internal.h >> >> @@ -61,6 +61,9 @@ This function calls Classifier module internal >> >> functions >> >> for a given packet and >> >> enqueues the packet to specific Queue based on PMR and CoS selected. >> >> **/ >> >> int packet_classifier(odp_pktio_t pktio, odp_packet_t pkt); >> >> + >> >> +int _odp_packet_classifier(pktio_entry_t *entry, odp_packet_t pkt); >> >> + >> >> /** >> >> Packet IO classifier init >> >> >> >> diff --git a/platform/linux-generic/include/odp_packet_internal.h >> >> b/platform/linux-generic/include/odp_packet_internal.h >> >> index 6f1521c..12e9cca 100644 >> >> --- a/platform/linux-generic/include/odp_packet_internal.h >> >> +++ b/platform/linux-generic/include/odp_packet_internal.h >> >> @@ -28,6 +28,8 @@ extern "C" { >> >> #include <odp/crypto.h> >> >> #include <odp_crypto_internal.h> >> >> >> >> +#define PACKET_JUMBO_LEN (9 * 1024) >> >> + >> >> /** >> >> * Packet input & protocol flags >> >> */ >> >> @@ -243,7 +245,7 @@ void packet_parse_l2(odp_packet_hdr_t *pkt_hdr); >> >> int packet_parse_full(odp_packet_hdr_t *pkt_hdr); >> >> >> >> /* Reset parser metadata for a new parse */ >> >> -void packet_parse_reset(odp_packet_t pkt); >> >> +void packet_parse_reset(odp_packet_hdr_t *pkt_hdr); >> >> >> >> /* Convert a packet handle to a buffer handle */ >> >> odp_buffer_t _odp_packet_to_buffer(odp_packet_t pkt); >> >> @@ -251,6 +253,10 @@ odp_buffer_t _odp_packet_to_buffer(odp_packet_t >> >> pkt); >> >> /* Convert a buffer handle to a packet handle */ >> >> odp_packet_t _odp_packet_from_buffer(odp_buffer_t buf); >> >> >> >> +int _odp_parse_common(odp_packet_hdr_t *pkt_hdr, const uint8_t >> >> *parseptr); >> >> + >> >> +int _odp_cls_parse(odp_packet_hdr_t *pkt_hdr, const uint8_t >> >> *parseptr); >> >> + >> >> #ifdef __cplusplus >> >> } >> >> #endif >> >> diff --git a/platform/linux-generic/include/odp_packet_io_internal.h >> >> b/platform/linux-generic/include/odp_packet_io_internal.h >> >> index a46c6fe..1f79f9c 100644 >> >> --- a/platform/linux-generic/include/odp_packet_io_internal.h >> >> +++ b/platform/linux-generic/include/odp_packet_io_internal.h >> >> @@ -86,6 +86,7 @@ struct pktio_entry { >> >> classifier_t cls; /**< classifier linked with >> >> this >> >> pktio*/ >> >> char name[PKTIO_NAME_LEN]; /**< name of pktio provided to >> >> pktio_open() */ >> >> + odp_pktio_t id; >> >> odp_pktio_param_t param; >> >> }; >> >> >> >> @@ -118,6 +119,9 @@ typedef struct pktio_if_ops { >> >> int (*mac_get)(pktio_entry_t *pktio_entry, void *mac_addr); >> >> } pktio_if_ops_t; >> >> >> >> +int _odp_packet_cls_enq(pktio_entry_t *pktio_entry, uint8_t *base, >> >> + uint16_t buf_len, odp_packet_t *pkt_ret); >> >> + >> >> extern void *pktio_entry_ptr[]; >> >> >> >> static inline int pktio_to_id(odp_pktio_t pktio) >> >> diff --git a/platform/linux-generic/include/odp_packet_socket.h >> >> b/platform/linux-generic/include/odp_packet_socket.h >> >> index a5e0eb3..1eaafb7 100644 >> >> --- a/platform/linux-generic/include/odp_packet_socket.h >> >> +++ b/platform/linux-generic/include/odp_packet_socket.h >> >> @@ -44,6 +44,8 @@ typedef struct { >> >> int sockfd; /**< socket descriptor */ >> >> odp_pool_t pool; /**< pool to alloc packets from */ >> >> unsigned char if_mac[ETH_ALEN]; /**< IF eth mac addr */ >> >> + uint8_t *cache_ptr[ODP_PACKET_SOCKET_MAX_BURST_RX]; >> >> + odp_shm_t shm; >> >> } pkt_sock_t; >> >> >> >> /** packet mmap ring */ >> >> -- >> >> 1.9.1 >> >> >> >> _______________________________________________ >> >> lng-odp mailing list >> >> [email protected] >> >> https://lists.linaro.org/mailman/listinfo/lng-odp >> > >> > > > _______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
