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