#ifndef _TRACE_IPPKT_H_
#define _TRACE_IPPKT_H_

#include <linux/tracepoint.h>

enum trace_ippkt_loc_id {
	TRACE_IPPKT_LOC_ETH_RX,
	TRACE_IPPKT_LOC_ETH_TX,
	TRACE_IPPKT_LOC_WLAN_RX,
	TRACE_IPPKT_LOC_WLAN_TX,
	TRACE_IPPKT_LOC_MAX
};

enum trace_ippkt_drop_rsn {
	TRACE_IPPKT_DROP_RSN_NONE,
	TRACE_IPPKT_DROP_RSN_SCH,
	TRACE_IPPKT_DROP_RSN_VSP,
	TRACE_IPPKT_DROP_RSN_INVALID,
	TRACE_IPPKT_DROP_RSN_AUTH,
	TRACE_IPPKT_DROP_RSN_MAC_DEAD,
	TRACE_IPPKT_DROP_RSN_AID_STALE,
	TRACE_IPPKT_DROP_RSN_NO_DEST,
	TRACE_IPPKT_DROP_RSN_NO_DESC,
	TRACE_IPPKT_DROP_RSN_ETH_RX,
	TRACE_IPPKT_DROP_RSN_AP_ISOLATE,
	TRACE_IPPKT_DROP_RSN_NO_WDS,
	TRACE_IPPKT_DROP_RSN_NO_WDS_BA,
	TRACE_IPPKT_DROP_RSN_SHOULD_DROP,
	TRACE_IPPKT_DROP_RSN_COPY,
	TRACE_IPPKT_DROP_RSN_CTRL,
	TRACE_IPPKT_DROP_RSN_3ADDR,
	TRACE_IPPKT_DROP_RSN_RECONFIG,
	TRACE_IPPKT_DROP_RSN_RGMII,
	TRACE_IPPKT_DROP_RSN_MUC_TX_XATTEMPTS,
	TRACE_IPPKT_DROP_RSN_MUC_TX_EXPIRED,
	TRACE_IPPKT_DROP_RSN_MUC_TX_RESTRICT,
	TRACE_IPPKT_DROP_RSN_MUC_RX_AGG_TIMEOUT,
	TRACE_IPPKT_DROP_RSN_MUC_RX_AGG_EMPTY,
	TRACE_IPPKT_DROP_RSN_PROXY_ARP,
	TRACE_IPPKT_DROP_RSN_MAX
};

DECLARE_TRACE(ippkt_check,
	TP_PROTO(void *pkt, uint32_t len, enum trace_ippkt_loc_id loc_id),
	TP_ARGS(pkt, len, loc_id));

DECLARE_TRACE(ippkt_dropped,
	TP_PROTO(enum trace_ippkt_drop_rsn rsn, uint32_t cnt, uint8_t is_cumulative),
	TP_ARGS(rsn, cnt, is_cumulative));

#endif /* _TRACE_IPPKT_H_ */
