bogdanPricope replied on github web page:

platform/linux-generic/pktio/dpdk.c
line 125
@@ -436,6 +440,97 @@ static inline int mbuf_to_pkt(pktio_entry_t *pktio_entry,
        return (i > 0 ? i : -1);
 }
 
+static inline int packet_parse(void *l3_hdr, odp_bool_t *l3_proto_v4,
+                              uint8_t *l4_proto)
+{
+       uint8_t l3_proto_ver = _ODP_IPV4HDR_VER(*(uint8_t *)l3_hdr);
+
+       if (l3_proto_ver == _ODP_IPV4) {
+               struct ipv4_hdr *ip = (struct ipv4_hdr *)l3_hdr;
+
+               *l3_proto_v4 = 1;
+               if (!rte_ipv4_frag_pkt_is_fragmented(ip))
+                       *l4_proto = ip->next_proto_id;
+               else
+                       *l4_proto = 0;
+
+               return 0;
+       } else if (l3_proto_ver == _ODP_IPV6) {
+               struct ipv6_hdr *ipv6 = (struct ipv6_hdr *)l3_hdr;
+
+               *l3_proto_v4 = 0;
+               *l4_proto = ipv6->proto;
+               return 0;
+       }
+
+       return -1;
+}
+
+static inline uint16_t phdr_csum(odp_bool_t ipv4, void *l3_hdr,
+                                uint64_t ol_flags)
+{
+       if (ipv4)
+               return rte_ipv4_phdr_cksum(l3_hdr, ol_flags);
+       else /*ipv6*/
+               return rte_ipv6_phdr_cksum(l3_hdr, ol_flags);
+}
+
+static inline int pkt_set_ol_tx(odp_pktout_config_opt_t *pktout_cfg,
+                               odp_packet_hdr_t *pkt_hdr,
+                               struct rte_mbuf *mbuf,
+                               char *mbuf_data)


Comment:
OK

https://github.com/Linaro/odp/pull/124#discussion_r136786884
updated_at 2017-09-04 10:00:41

Reply via email to