"Fossies" - the Fresh Open Source Software Archive

Member "snort-2.9.17/src/dynamic-preprocessors/s7commplus/spp_s7comm.h" (16 Oct 2020, 2373 Bytes) of package /linux/misc/snort-2.9.17.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "spp_s7comm.h" see the Fossies "Dox" file reference documentation.

    1 /*
    2  * This program is free software; you can redistribute it and/or modify
    3  * it under the terms of the GNU General Public License Version 2 as
    4  * published by the Free Software Foundation.  You may not use, modify or
    5  * distribute this program under any other version of the GNU General
    6  * Public License.
    7  *
    8  * This program is distributed in the hope that it will be useful,
    9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
   10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   11  * GNU General Public License for more details.
   12  *
   13  * You should have received a copy of the GNU General Public License
   14  * along with this program; if not, write to the Free Software
   15  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
   16  *
   17  * Copyright (C) 2020-2020 Cisco and/or its affiliates. All rights reserved.
   18  *
   19  * Authors: Jeffrey Gu <jgu@cisco.com>, Pradeep Damodharan <prdamodh@cisco.com>
   20  *
   21  * Dynamic preprocessor for the S7commplus protocol
   22  *
   23  */
   24 
   25 #ifndef SPP_S7COMM_H
   26 #define SPP_S7COMM_H
   27 
   28 #include "sf_types.h"
   29 #include "sfPolicy.h"
   30 #include "sfPolicyUserData.h"
   31 
   32 #define MAX_PORTS 65536
   33 
   34 /* Default S7commplus port */
   35 #define S7COMMPLUS_PORT 102
   36 
   37 /* Convert port value into an index for the s7comm_config->ports array */
   38 #define PORT_INDEX(port) port/8
   39 
   40 /* Convert port value into a value for bitwise operations */
   41 #define CONV_PORT(port) 1<<(port%8)
   42 
   43 /* S7commplus preprocessor configuration */
   44 typedef struct _s7commplus_config
   45 {
   46     uint8_t ports[MAX_PORTS/8];
   47 
   48     int ref_count;
   49 } s7commplus_config_t;
   50 
   51 /* S7commplus session data */
   52 typedef struct _s7commplus_session_data
   53 {
   54     uint8_t s7commplus_proto_id;
   55     uint8_t s7commplus_proto_version;
   56     uint16_t s7commplus_data_len;
   57     uint8_t s7commplus_opcode;
   58     uint16_t s7commplus_function, s7commplus_reserved_1, s7commplus_reserved_2;
   59 
   60     tSfPolicyId policy_id;
   61     tSfPolicyUserContextId context_id;
   62 } s7commplus_session_data_t;
   63 
   64 #define S7COMMPLUS_PORTS_KEYWORD    "ports"
   65 #define S7COMMPLUS_MEMCAP_KEYWORD   "memcap"
   66 
   67 #define TPKT_MIN_HDR_LEN 7     /* length field in TPKT header for S7commplus */
   68 #define TPKT_MIN_DATA_HDR_LEN 11     /* length field in TPKT header for S7commplus */
   69 #define INTEGRITY_PART_LEN 33 /* length of Integrity part in V3 Header packets */
   70 #define S7COMMPLUS_MIN_HDR_LEN 4
   71 
   72 #define S7COMMPLUS_PROTOCOL_ID                  0x72
   73 
   74 #endif /* SPP_S7COMM_H */