aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-keystone2/include/odp_packet_io_internal.h
blob: b2e1f5a7ef7c785199a7bd88014e31f556918425 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
 * Copyright (c) 2014, Linaro Limited
 * Copyright (c) 2014, Texas Instruments Incorporated
 * All rights reserved.
 *
 * SPDX-License-Identifier:     BSD-3-Clause
 */

/**
 * @file
 *
 * ODP packet IO - implementation internal
 */

#ifndef ODP_PACKET_IO_INTERNAL_H_
#define ODP_PACKET_IO_INTERNAL_H_

#include <odp/packet.h>
#include <ccan/list/list.h>
#include <odp_packet_internal.h>

#define SW_PARSING 1

uint16_t _odp_pktio_port_id(odp_pktio_t pktio);

static inline void pktin_update_event(odp_event_t ev, queue_entry_t *qentry)
{
	odp_packet_t pkt = odp_packet_from_event(ev);
	struct odp_pkthdr *hdr = _odp_pkt_hdr(pkt);
	hdr->input = qentry->pktin;
	ODP_DBG("Received packet ---------\n");
#ifdef SW_PARSING
	_odp_packet_parse(pkt);
#else
	pasahoLongInfo_t *pasa_info =
	nwal_mGetProtoInfo(Pktlib_getPacketFromDesc(_odp_ev_to_cppi_desc(ev)));

	ODP_AS_STR(pasa_info, "Invalid info from NetCP");
	hdr->l2_offset = 0;
	hdr->l3_offset = PASAHO_LINFO_READ_L3_OFFSET(pasa_info);
	hdr->l4_offset = PASAHO_LINFO_READ_L4_OFFSET(pasa_info);
#endif
	if (ODP_DEBUG_PRINT == 1)
		odp_packet_print(pkt);
}

uint8_t _pktio_pmr_out_cnt(odp_pktio_t pktio);
odp_pmr_t _pktio_pmr_default(odp_pktio_t pktio);
void _pktio_add_pmr_out(odp_pktio_t pktio, struct list_node *pmr_node);
void _pktio_rm_pmr_out(odp_pktio_t pktio, struct list_node *pmr_node);
odp_queue_t _pktio_inq_default(odp_pktio_t pktio);
odp_pool_t _pktio_in_pool(odp_pktio_t pktio);
int _pktio_rm_pmr_default(odp_pktio_t pktio);
void _pktio_lock(odp_pktio_t pktio);
void _pktio_unlock(odp_pktio_t pktio);
int _pktio_get(odp_pktio_t pktio);
void _pktio_put(odp_pktio_t pktio);
char *_pktio_name(odp_pktio_t pktio);
odp_pktio_input_mode_t _pktio_in_mode(odp_pktio_t pktio);

#endif