blob: e5b970bedb75f3c2a6664d0afa28425df33f7a89 [file] [log] [blame]
#ifndef _MCPS_FLOW_LEVEL_H
#define _MCPS_FLOW_LEVEL_H
#include <linux/printk.h>
#include <linux/netdevice.h>
#include <linux/cpu.h>
void mcps_napi_schedule(void *info);
void mcps_do_ipi_and_irq_enable(struct mcps_pantry *pantry);
bool mcps_on_ipi_waiting(struct mcps_pantry *pantry);
int schedule_ipi(struct napi_struct *napi, int quota);
int mcps_ipi_queued(struct mcps_pantry *pantry);
int mcps_gro_ipi_queued(struct mcps_pantry *pantry);
void mcps_gro_init(struct net_device *mcps_device);
void mcps_gro_exit(void);
int enqueue_to_pantry(struct sk_buff *skb, int cpu);
#if defined(CONFIG_MCPS_V2)
int mcps_try_skb_internal(struct sk_buff *skb);
#endif // #if defined(CONFIG_MCPS_V2)
#ifdef CONFIG_MCPS_DEBUG_PRINTK
#define PRINT_TRY_FAIL(hash, cpu) printk(KERN_DEBUG "MCPSD %s : Skip [%u]session - reason [%d]\n", __func__, hash, cpu)
#else
#define PRINT_TRY_FAIL(hash, cpu) do { } while (0)
#endif
#endif