suricata
flow-bindgen.h
Go to the documentation of this file.
1 /* Copyright (C) 2025 Open Information Security Foundation
2  *
3  * You can copy, redistribute or modify this Program under the terms of
4  * the GNU General Public License version 2 as published by the Free
5  * Software Foundation.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * version 2 along with this program; if not, write to the Free Software
14  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
15  * 02110-1301, USA.
16  */
17 
18 #ifndef SURICATA_FLOW_BINDGEN_H
19 #define SURICATA_FLOW_BINDGEN_H
20 
21 /* forward declaration for macset include */
22 typedef struct Flow_ Flow;
23 
24 void SCFlowGetLastTimeAsParts(const Flow *flow, uint64_t *secs, uint64_t *usecs);
25 uint64_t SCFlowGetFlags(const Flow *flow);
26 bool SCFlowIsIPv4(const Flow *flow);
27 bool SCFlowIsIPv6(const Flow *flow);
28 uint8_t SCFlowGetIPProtocol(const Flow *flow);
29 uint16_t SCFlowGetSourcePort(const Flow *flow);
30 uint16_t SCFlowGetDestinationPort(const Flow *flow);
31 
32 /**
33  * \brief Returns a borrowed raw pointer to the flow source address.
34  *
35  * The address is in network byte order. Use SCFlowIsIPv4 and SCFlowIsIPV6 to
36  * properly determine the size and family of the address.
37  */
38 const uint8_t *SCFlowGetSourceAddressAsRawPtr(const Flow *flow);
39 
40 /**
41  * \brief Returns a borrowed raw pointer to the flow destination address.
42  *
43  * The address is in network byte order. Use SCFlowIsIPv4 and SCFlowIsIPV6 to
44  * properly determine the size and family of the address.
45  */
46 const uint8_t *SCFlowGetDestinationAddressAsRawPtr(const Flow *flow);
47 uint32_t SCFlowGetToServerPacketCount(const Flow *flow);
48 uint32_t SCFlowGetToClientPacketCount(const Flow *flow);
50 
51 #endif /* SURICATA_FLOW_BINDGEN_H */
SCFlowIsIPv4
bool SCFlowIsIPv4(const Flow *flow)
Return true if the flow is IPv4.
Definition: flow.c:1257
SCFlowGetSourceAddressAsRawPtr
const uint8_t * SCFlowGetSourceAddressAsRawPtr(const Flow *flow)
Returns a borrowed raw pointer to the flow source address.
Definition: flow.c:1244
SCFlowGetDestinationPort
uint16_t SCFlowGetDestinationPort(const Flow *flow)
Get flow destination port.
Definition: flow.c:1290
SCFlowGetLastTimeAsParts
void SCFlowGetLastTimeAsParts(const Flow *flow, uint64_t *secs, uint64_t *usecs)
Get flow last time as individual values.
Definition: flow.c:1227
SCFlowGetIPProtocol
uint8_t SCFlowGetIPProtocol(const Flow *flow)
Get flow IP protocol.
Definition: flow.c:1273
AppProto
uint16_t AppProto
Definition: app-layer-protos.h:87
SCFlowGetAppProtocol
AppProto SCFlowGetAppProtocol(const Flow *f)
Definition: flow.c:1278
Flow_
Flow data structure.
Definition: flow.h:355
SCFlowGetSourcePort
uint16_t SCFlowGetSourcePort(const Flow *flow)
Get flow source port.
Definition: flow.c:1239
SCFlowGetToServerPacketCount
uint32_t SCFlowGetToServerPacketCount(const Flow *flow)
Get the number of packets seen toserver.
Definition: flow.c:1298
SCFlowGetDestinationAddressAsRawPtr
const uint8_t * SCFlowGetDestinationAddressAsRawPtr(const Flow *flow)
Returns a borrowed raw pointer to the flow destination address.
Definition: flow.c:1249
SCFlowIsIPv6
bool SCFlowIsIPv6(const Flow *flow)
Return true if the flow is IPv6.
Definition: flow.c:1265
SCFlowGetToClientPacketCount
uint32_t SCFlowGetToClientPacketCount(const Flow *flow)
Get the number of packets seen toclient.
Definition: flow.c:1306
SCFlowGetFlags
uint64_t SCFlowGetFlags(const Flow *flow)
Get flow flags.
Definition: flow.c:1317