1/*
2 * User space header to send message to the fast classifier
3 *
4 * Copyright (c) 2013 The Linux Foundation. All rights reserved.
5 * Permission to use, copy, modify, and/or distribute this software for
6 * any purpose with or without fee is hereby granted, provided that the
7 * above copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
14 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17#include <linux/if_ether.h>
18
19#define FAST_CLASSIFIER_GENL_VERSION	(1)
20#define FAST_CLASSIFIER_GENL_NAME	"FC"
21#define FAST_CLASSIFIER_GENL_MCGRP	"FC_MCGRP"
22#define FAST_CLASSIFIER_GENL_HDRSIZE	(0)
23
24enum {
25	FAST_CLASSIFIER_A_UNSPEC,
26	FAST_CLASSIFIER_A_TUPLE,
27	__FAST_CLASSIFIER_A_MAX,
28};
29#define FAST_CLASSIFIER_A_MAX (__FAST_CLASSIFIER_A_MAX - 1)
30
31enum {
32	FAST_CLASSIFIER_C_UNSPEC,
33	FAST_CLASSIFIER_C_OFFLOAD,
34	FAST_CLASSIFIER_C_OFFLOADED,
35	FAST_CLASSIFIER_C_DONE,
36	__FAST_CLASSIFIER_C_MAX,
37};
38#define FAST_CLASSIFIER_C_MAX (__FAST_CLASSIFIER_C_MAX - 1)
39
40struct fast_classifier_tuple {
41	unsigned char proto;
42	unsigned long src_saddr;
43	unsigned long dst_saddr;
44	unsigned short sport;
45	unsigned short dport;
46	unsigned char smac[ETH_ALEN];
47	unsigned char dmac[ETH_ALEN];
48};
49