suricata
|
#include "suricata-common.h"
#include "decode.h"
#include "detect.h"
#include "flow-var.h"
#include "util-cidr.h"
#include "util-unittest.h"
#include "detect-engine-address.h"
#include "detect-engine-address-ipv6.h"
#include "detect-engine-siggroup.h"
#include "detect-engine-port.h"
#include "util-debug.h"
Go to the source code of this file.
Functions | |
int | AddressIPv6Lt (const Address *a, const Address *b) |
Compares 2 ipv6 addresses and returns if the first address(a) is less than the second address(b) or not. More... | |
int | AddressIPv6LtU32 (uint32_t *a, uint32_t *b) |
int | AddressIPv6Gt (const Address *a, const Address *b) |
Compares 2 ipv6 addresses and returns if the first address(a) is greater than the second address(b) or not. More... | |
int | AddressIPv6GtU32 (uint32_t *a, uint32_t *b) |
int | AddressIPv6Eq (const Address *a, const Address *b) |
Compares 2 ipv6 addresses and returns if the addresses are equal or not. More... | |
int | AddressIPv6EqU32 (uint32_t *a, uint32_t *b) |
int | AddressIPv6Le (const Address *a, const Address *b) |
Compares 2 ipv6 addresses and returns if the first address(a) is less than or equal to the second address(b) or not. More... | |
int | AddressIPv6LeU32 (uint32_t *a, uint32_t *b) |
int | AddressIPv6Ge (const Address *a, const Address *b) |
Compares 2 ipv6 addresses and returns if the first address(a) is greater than or equal to the second address(b) or not. More... | |
int | AddressIPv6GeU32 (uint32_t *a, uint32_t *b) |
int | DetectAddressCmpIPv6 (DetectAddress *a, DetectAddress *b) |
Compares 2 addresses(address ranges) and returns the relationship between the 2 addresses. More... | |
int | DetectAddressCutIPv6 (DetectEngineCtx *de_ctx, DetectAddress *a, DetectAddress *b, DetectAddress **c) |
int | DetectAddressCutNotIPv6 (DetectAddress *a, DetectAddress **b) |
Cuts and returns an address range, which is the complement of the address range that is supplied as the argument. More... | |
void | DetectAddressIPv6Tests (void) |
IPV6 Address part of the detection engine.
Definition in file detect-engine-address-ipv6.c.
Compares 2 ipv6 addresses and returns if the addresses are equal or not.
a | The first ipv6 address to be compared. |
b | The second ipv6 address to be compared. |
1 | If a == b. |
0 | Otherwise. |
Definition at line 128 of file detect-engine-address-ipv6.c.
Referenced by AddressIPv6Ge(), AddressIPv6Le(), and DetectAddressCmpIPv6().
int AddressIPv6EqU32 | ( | uint32_t * | a, |
uint32_t * | b | ||
) |
Definition at line 140 of file detect-engine-address-ipv6.c.
Referenced by AddressIPv6GeU32(), and AddressIPv6LeU32().
Compares 2 ipv6 addresses and returns if the first address(a) is greater than or equal to the second address(b) or not.
a | The first ipv6 address to be compared. |
b | The second ipv6 address to be compared. |
1 | If a >= b. |
0 | Otherwise, i.e. a < b. |
Definition at line 194 of file detect-engine-address-ipv6.c.
References AddressIPv6Eq(), and AddressIPv6Gt().
Referenced by DetectAddressCmpIPv6().
int AddressIPv6GeU32 | ( | uint32_t * | a, |
uint32_t * | b | ||
) |
Definition at line 205 of file detect-engine-address-ipv6.c.
References AddressIPv6EqU32(), and AddressIPv6GtU32().
Compares 2 ipv6 addresses and returns if the first address(a) is greater than the second address(b) or not.
a | The first ipv6 address to be compared. |
b | The second ipv6 address to be compared. |
1 | If a > b. |
0 | Otherwise, i.e. a <= b. |
Definition at line 90 of file detect-engine-address-ipv6.c.
References SCNtohl.
Referenced by AddressIPv6Ge(), and DetectAddressCmpIPv6().
int AddressIPv6GtU32 | ( | uint32_t * | a, |
uint32_t * | b | ||
) |
Definition at line 104 of file detect-engine-address-ipv6.c.
References SCNtohl.
Referenced by AddressIPv6GeU32().
Compares 2 ipv6 addresses and returns if the first address(a) is less than or equal to the second address(b) or not.
a | The first ipv6 address to be compared. |
b | The second ipv6 address to be compared. |
1 | If a <= b. |
0 | Otherwise, i.e. a > b. |
Definition at line 162 of file detect-engine-address-ipv6.c.
References AddressIPv6Eq(), and AddressIPv6Lt().
Referenced by DetectAddressCmpIPv6().
int AddressIPv6LeU32 | ( | uint32_t * | a, |
uint32_t * | b | ||
) |
Definition at line 173 of file detect-engine-address-ipv6.c.
References AddressIPv6EqU32(), and AddressIPv6LtU32().
Compares 2 ipv6 addresses and returns if the first address(a) is less than the second address(b) or not.
a | The first ipv6 address to be compared. |
b | The second ipv6 address to be compared. |
1 | If a < b. |
0 | Otherwise, i.e. a >= b. |
Definition at line 52 of file detect-engine-address-ipv6.c.
References SCNtohl.
Referenced by AddressIPv6Le(), and DetectAddressCmpIPv6().
int AddressIPv6LtU32 | ( | uint32_t * | a, |
uint32_t * | b | ||
) |
Definition at line 66 of file detect-engine-address-ipv6.c.
References SCNtohl.
Referenced by AddressIPv6LeU32().
int DetectAddressCmpIPv6 | ( | DetectAddress * | a, |
DetectAddress * | b | ||
) |
Compares 2 addresses(address ranges) and returns the relationship between the 2 addresses.
a | Pointer to the first address instance to be compared. |
b | Pointer to the second address instance to be compared. |
ADDRESS_EQ | If the 2 address ranges a and b, are equal. |
ADDRESS_ES | b encapsulates a. b_ip1[...a_ip1...a_ip2...]b_ip2. |
ADDRESS_EB | a encapsulates b. a_ip1[...b_ip1....b_ip2...]a_ip2. |
ADDRESS_LE | a_ip1(...b_ip1==a_ip2...)b_ip2 |
ADDRESS_LT | a_ip1(...b_ip1...a_ip2...)b_ip2 |
ADDRESS_GE | b_ip1(...a_ip1==b_ip2...)a_ip2 |
ADDRESS_GT | a_ip1 > b_ip2, i.e. the address range for 'a' starts only after the end of the address range for 'b' |
Definition at line 232 of file detect-engine-address-ipv6.c.
References ADDRESS_EB, ADDRESS_EQ, ADDRESS_ER, ADDRESS_ES, ADDRESS_GE, ADDRESS_GT, ADDRESS_LE, ADDRESS_LT, AddressIPv6Eq(), AddressIPv6Ge(), AddressIPv6Gt(), AddressIPv6Le(), AddressIPv6Lt(), DetectAddress_::ip, DetectAddress_::ip2, and SCLogDebug.
Referenced by DetectAddressCmp(), and DetectAddressCutIPv6().
int DetectAddressCutIPv6 | ( | DetectEngineCtx * | de_ctx, |
DetectAddress * | a, | ||
DetectAddress * | b, | ||
DetectAddress ** | c | ||
) |
Definition at line 353 of file detect-engine-address-ipv6.c.
References ADDRESS_EB, ADDRESS_ES, ADDRESS_GE, ADDRESS_LE, DetectAddressCmpIPv6(), DetectAddress_::ip, DetectAddress_::ip2, and SCNtohl.
int DetectAddressCutNotIPv6 | ( | DetectAddress * | a, |
DetectAddress ** | b | ||
) |
Cuts and returns an address range, which is the complement of the address range that is supplied as the argument.
For example:
If a = ::-2000::, then a = 2000::1-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF and b = NULL If a = 2000::1-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF, then a = ::-2000:: and b = NULL If a = 2000::1-20FF::2, then a = ::-2000:: and b = 20FF::3-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
a | Pointer to an address range (DetectAddress) instance whose complement has to be returned in a and b. |
b | Pointer to DetectAddress pointer, that will be supplied back with a new DetectAddress instance, if the complement demands so. |
0 | On success. |
-1 | On failure. |
Definition at line 704 of file detect-engine-address-ipv6.c.
References DetectAddress_::ip, DetectAddress_::ip2, and SCNtohl.
void DetectAddressIPv6Tests | ( | void | ) |
Definition at line 1874 of file detect-engine-address-ipv6.c.
References UtRegisterTest().