1/*
2 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
3 * Permission to use, copy, modify, and/or distribute this software for
4 * any purpose with or without fee is hereby granted, provided that the
5 * above copyright notice and this permission notice appear in all copies.
6 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
7 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
9 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
10 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
11 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
12 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
13 */
14
15
16/**
17 * @defgroup fal_sec FAL_SEC
18 * @{
19 */
20#ifndef _FAL_SEC_H_
21#define _FAL_SEC_H_
22
23#ifdef __cplusplus
24extern "C" {
25#endif                          /* __cplusplus */
26
27#include "common/sw.h"
28#include "fal/fal_type.h"
29
30
31    typedef enum {
32        /* define MAC layer related normalization items */
33        FAL_NORM_MAC_RESV_VID_CMD = 0,
34        FAL_NORM_MAC_INVALID_SRC_ADDR_CMD,
35
36        /* define IP layer related normalization items */
37        FAL_NORM_IP_INVALID_VER_CMD,
38        FAL_NROM_IP_SAME_ADDR_CMD,
39        FAL_NROM_IP_TTL_CHANGE_STATUS,
40        FAL_NROM_IP_TTL_VALUE,
41
42        /* define IP4 related normalization items */
43        FAL_NROM_IP4_INVALID_HL_CMD,
44        FAL_NROM_IP4_HDR_OPTIONS_CMD,
45        FAL_NROM_IP4_INVALID_DF_CMD,
46        FAL_NROM_IP4_FRAG_OFFSET_MIN_LEN_CMD,
47        FAL_NROM_IP4_FRAG_OFFSET_MAX_LEN_CMD,
48        FAL_NROM_IP4_INVALID_FRAG_OFFSET_CMD,
49        FAL_NROM_IP4_INVALID_SIP_CMD,
50        FAL_NROM_IP4_INVALID_DIP_CMD,
51        FAL_NROM_IP4_INVALID_CHKSUM_CMD,
52        FAL_NROM_IP4_INVALID_PL_CMD,
53        FAL_NROM_IP4_DF_CLEAR_STATUS,
54        FAL_NROM_IP4_IPID_RANDOM_STATUS,
55        FAL_NROM_IP4_FRAG_OFFSET_MIN_SIZE,
56
57        /* define IP4 related normalization items */
58        FAL_NROM_IP6_INVALID_PL_CMD,
59        FAL_NROM_IP6_INVALID_SIP_CMD,
60        FAL_NROM_IP6_INVALID_DIP_CMD,
61
62        /* define TCP related normalization items */
63        FAL_NROM_TCP_BLAT_CMD,
64        FAL_NROM_TCP_INVALID_HL_CMD,
65        FAL_NROM_TCP_INVALID_SYN_CMD,
66        FAL_NROM_TCP_SU_BLOCK_CMD,
67        FAL_NROM_TCP_SP_BLOCK_CMD,
68        FAL_NROM_TCP_SAP_BLOCK_CMD,
69        FAL_NROM_TCP_XMAS_SCAN_CMD,
70        FAL_NROM_TCP_NULL_SCAN_CMD,
71        FAL_NROM_TCP_SR_BLOCK_CMD,
72        FAL_NROM_TCP_SF_BLOCK_CMD,
73        FAL_NROM_TCP_SAR_BLOCK_CMD,
74        FAL_NROM_TCP_RST_SCAN_CMD,
75        FAL_NROM_TCP_SYN_WITH_DATA_CMD,
76        FAL_NROM_TCP_RST_WITH_DATA_CMD,
77        FAL_NROM_TCP_FA_BLOCK_CMD,
78        FAL_NROM_TCP_PA_BLOCK_CMD,
79        FAL_NROM_TCP_UA_BLOCK_CMD,
80        FAL_NROM_TCP_INVALID_CHKSUM_CMD,
81        FAL_NROM_TCP_INVALID_URGPTR_CMD,
82        FAL_NROM_TCP_INVALID_OPTIONS_CMD,
83        FAL_NROM_TCP_MIN_HDR_SIZE,
84
85        /* define UDP related normalization items */
86        FAL_NROM_UDP_BLAT_CMD,
87        FAL_NROM_UDP_INVALID_LEN_CMD,
88        FAL_NROM_UDP_INVALID_CHKSUM_CMD,
89
90        /* define ICMP related normalization items */
91        FAL_NROM_ICMP4_PING_PL_EXCEED_CMD,
92        FAL_NROM_ICMP6_PING_PL_EXCEED_CMD,
93        FAL_NROM_ICMP4_PING_FRAG_CMD,
94        FAL_NROM_ICMP6_PING_FRAG_CMD,
95        FAL_NROM_ICMP4_PING_MAX_PL_VALUE,
96        FAL_NROM_ICMP6_PING_MAX_PL_VALUE,
97    }
98    fal_norm_item_t;
99
100    sw_error_t
101    fal_sec_norm_item_set(a_uint32_t dev_id, fal_norm_item_t item, void *value);
102
103    sw_error_t
104    fal_sec_norm_item_get(a_uint32_t dev_id, fal_norm_item_t item, void *value);
105
106#ifdef __cplusplus
107}
108#endif                          /* __cplusplus */
109#endif                          /* _FAL_SEC_H_ */
110
111/**
112 * @}
113 */
114
115