cd_esp,
#ifdef STATIC_DECODERS
+ cd_ah,
+ cd_arp,
+ cd_erspan2,
+ cd_erspan3,
+ cd_ethloopback,
+ cd_gre,
+ cd_gtp,
+ cd_mpls,
+ cd_pppencap,
+ cd_pppoe,
+ cd_swipe,
+ cd_teredo,
+ cd_transbridge,
+ cd_vlan,
#endif
+
nullptr
};
extern const BaseApi* cd_esp;
#ifdef STATIC_DECODERS
+extern const BaseApi* cd_ah;
+extern const BaseApi* cd_arp;
+extern const BaseApi* cd_erspan2;
+extern const BaseApi* cd_erspan3;
+extern const BaseApi* cd_ethloopback;
+extern const BaseApi* cd_gre;
+extern const BaseApi* cd_gtp;
+extern const BaseApi* cd_mpls;
+extern const BaseApi* cd_pppencap;
+extern const BaseApi* cd_pppoe;
+extern const BaseApi* cd_swipe;
+extern const BaseApi* cd_teredo;
+extern const BaseApi* cd_transbridge;
+extern const BaseApi* cd_vlan;
#endif
{
public:
AhCodec() : Codec("ah"){};
- ~AhCodec();
+ ~AhCodec(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
-static const char* name = "ah_decode";
+static const char* name = "ah_codec";
static const CodecApi ah_api =
{
};
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &ah_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_ah = &ah_api.base;
+#endif
+
+
+
class ArpCodec : public Codec
{
public:
- ArpCodec() : Codec("NAME"){};
- ~ArpCodec();
+ ArpCodec() : Codec("Arp"){};
+ ~ArpCodec(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
Packet *, uint16_t &p_hdr_len, int &next_prot_id);
virtual void get_protocol_ids(std::vector<uint16_t>&);
- virtual void get_data_link_type(std::vector<int>&){};
};
static const char* name = "arp_codec";
-static const CodecApi codec_api =
+static const CodecApi arp_api =
{
{ PT_CODEC, name, CDAPI_PLUGIN_V0, 0 },
NULL, // pinit
stats // stats
};
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &arp_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_arp = &arp_api.base;
+#endif
+
+
+
class NameCodec : public Codec
{
public:
- NameCodec() : Codec("NAME"){};
+ NameCodec() : Codec("dstopts"){};
~NameCodec();
{
public:
Erspan2Codec() : Codec("ERSPAN_2"){};
- ~Erspan2Codec();
+ ~Erspan2Codec(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
Packet *, uint16_t &p_hdr_len, int &next_prot_id);
virtual void get_protocol_ids(std::vector<uint16_t>&);
- virtual void get_data_link_type(std::vector<int>&){};
};
static const char* name = "erspan2_codec";
-static const CodecApi codec_api =
+static const CodecApi erspan2_api =
{
{ PT_CODEC, name, CDAPI_PLUGIN_V0, 0 },
NULL, // pinit
sum, // sum
stats // stats
};
+
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &erspan2_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_erspan2 = &erspan2_api.base;
+#endif
{
public:
Erspan3Codec() : Codec("ERSPAN_3"){};
- ~Erspan3Codec();
+ ~Erspan3Codec(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
Packet *, uint16_t &p_hdr_len, int &next_prot_id);
virtual void get_protocol_ids(std::vector<uint16_t>&);
- virtual void get_data_link_type(std::vector<int>&){};
};
static const char* name = "erspan3_codec";
-static const CodecApi codec_api =
+static const CodecApi erspan3_api =
{
{ PT_CODEC, name, CDAPI_PLUGIN_V0, 0 },
NULL, // pinit
stats // stats
};
+
+
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &erspan3_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_erspan3 = &erspan3_api.base;
+#endif
{
public:
EthLoopbackCodec() : Codec("Ethloopback"){};
- ~EthLoopbackCodec();
+ ~EthLoopbackCodec(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
static const char* name = "ethloopback_codec";
-static const CodecApi codec_api =
+static const CodecApi ethloopback_api =
{
{ PT_CODEC, name, CDAPI_PLUGIN_V0, 0 },
NULL, // pinit
sum, // sum
stats // stats
};
+
+
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ ðloopback_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_ethloopback = ðloopback_api.base;
+#endif
+
+
Packet *, uint16_t &p_hdr_len, int &next_prot_id);
virtual void get_protocol_ids(std::vector<uint16_t>&);
- virtual void get_data_link_type(std::vector<int>&){};
};
{
public:
GreCodec() : Codec("GRE"){};
- ~GreCodec();
+ ~GreCodec(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
static const char* name = "gre_codec";
-static const CodecApi codec_api =
+static const CodecApi gre_api =
{
{ PT_CODEC, name, CDAPI_PLUGIN_V0, 0 },
NULL, // pinit
stats // stats
};
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &gre_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_gre = &gre_api.base;
+#endif
+
{
public:
GtpCodec() : Codec("GTP"){};
- ~GtpCodec();
+ ~GtpCodec(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
Packet *, uint16_t &p_hdr_len, int &next_prot_id);
- virtual void get_protocol_ids(std::vector<uint16_t>&);
- virtual void get_data_link_type(std::vector<int>&){};
-
+ virtual void get_protocol_ids(std::vector<uint16_t>&);
};
} // anonymous namespace
*
*/
-bool decode(const uint8_t *raw_pkt, const uint32_t len,
+bool GtpCodec::decode(const uint8_t *raw_pkt, const uint32_t len,
Packet *p, uint16_t &p_hdr_len, int &next_prot_id)
{
uint32_t header_len;
static const char* name = "gtp_codec";
-static const CodecApi ipv6_api =
+static const CodecApi gtp_api =
{
{ PT_CODEC, name, CDAPI_PLUGIN_V0, 0 },
NULL, // pinit
NULL, // sum
NULL // stats
};
+
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ >p_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_gtp = >p_api.base;
+#endif
+
{
public:
MplsCodec() : Codec("MPLS"){};
- ~MplsCodec();
+ ~MplsCodec(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
static const char* name = "mpls_codec";
-static const CodecApi codec_api =
+static const CodecApi mpls_api =
{
{ PT_CODEC, name, CDAPI_PLUGIN_V0, 0 },
NULL, // pinit
stats // stats
};
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &mpls_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_mpls = &mpls_api.base;
+#endif
+
+
{
public:
PppEncap() : Codec("PPPEncapsulation"){};
- ~PppEncap();
+ ~PppEncap(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
Packet *, uint16_t &p_hdr_len, int &next_prot_id);
virtual void get_protocol_ids(std::vector<uint16_t>&);
- virtual void get_data_link_type(std::vector<int>&){};
};
static const char* name = "pppencap_codec";
-static const CodecApi codec_api =
+static const CodecApi pppencap_api =
{
{ PT_CODEC, name, CDAPI_PLUGIN_V0, 0 },
NULL, // pinit
};
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &pppencap_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_pppencap = &pppencap_api.base;
+#endif
+
+
+
+
{
public:
PPPoEPkt() : Codec("PPP_over_Eth"){};
- ~PPPoEPkt();
+ ~PPPoEPkt(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
Packet *, uint16_t &p_hdr_len, int &next_prot_id);
virtual void get_protocol_ids(std::vector<uint16_t>&);
- virtual void get_data_link_type(std::vector<int>&){};
};
static const char* name = "pppoe_codec";
-static const CodecApi codec_api =
+static const CodecApi pppoe_api =
{
{ PT_CODEC, name, CDAPI_PLUGIN_V0, 0 },
NULL, // pinit
stats // stats
};
+
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &pppoe_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_pppoe = &pppoe_api.base;
+#endif
+
+
+
public:
SwipeCodec() : Codec("swipe"){};
- virtual ~SwipeCodec();
+ virtual ~SwipeCodec(){};
virtual bool decode(const uint8_t* raw_packet, const uint32_t raw_len,
Packet *p, uint16_t &p_hdr_len, int &next_prot_id);
delete cd;
}
-static const CodecApi udp_api =
+static const CodecApi swipe_api =
{
{ PT_CODEC, name, CDAPI_PLUGIN_V0, 0 },
NULL, // pinit
};
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &swipe_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_swipe = &swipe_api.base;
+#endif
+
+
+
{
public:
TeredoCodec() : Codec("teredo"){};
- ~TeredoCodec();
+ ~TeredoCodec(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
delete cd;
}
-static const char* name = "teredo_codec";
+static const char* name = "teredo";
-static const CodecApi ipv6_api =
+static const CodecApi teredo_api =
{
{ PT_CODEC, name, CDAPI_PLUGIN_V0, 0 },
NULL, // pinit
NULL, // tterm
ctor, // ctor
dtor, // dtor
+ NULL,
+ NULL
};
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &teredo_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_teredo = &teredo_api.base;
+#endif
+
+
+
+
+
{
public:
TransbridgeCodec() : Codec("Transbridge"){};
- ~TransbridgeCodec();
+ ~TransbridgeCodec(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
-static const char* name = "transbridge_codec";
+static const char* name = "transbridge";
static const CodecApi transbridge_api =
{
};
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &transbridge_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_transbridge = &transbridge_api.base;
+#endif
+
+
{
public:
VlanCodec() : Codec("vlan"){};
- ~VlanCodec();
+ ~VlanCodec(){};
virtual bool decode(const uint8_t *raw_pkt, const uint32_t len,
-static const char* name = "VLAN";
+static const char* name = "vlan";
static const CodecApi vlan_api =
{
stats // stats
};
+
+#ifdef BUILDING_SO
+SO_PUBLIC const BaseApi* snort_plugins[] =
+{
+ &vlan_api.base,
+ nullptr
+};
+#else
+const BaseApi* cd_vlan = &vlan_api.base;
+#endif
+