wireshark/epan/addr_and_mask.h
Dario Lombardo 55c68ee69c epan: use SPDX indentifiers.
Skipping dissectors dir for now.

Change-Id: I717b66bfbc7cc81b83f8c2cbc011fcad643796aa
Reviewed-on: https://code.wireshark.org/review/25694
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-02-08 19:29:45 +00:00

42 lines
1 KiB
C

/* addr_and_mask.h
* Declarations of routines to fetch IPv4 and IPv6 addresses from a tvbuff
* and then mask out bits other than those covered by a prefix length
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef __ADDR_AND_MASK_H__
#define __ADDR_AND_MASK_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*
* These routines return PREFIX_LEN_OK on success, PREFIX_LEN_TOO_LONG if
* the prefix length is too long, and PREFIX_LEN_ZERO if the prefix length
* is 0.
*/
#define PREFIX_LEN_OK 0
#define PREFIX_LEN_TOO_LONG 1
#define PREFIX_LEN_ZERO 2
extern int tvb_get_ipv4_addr_with_prefix_len(tvbuff_t *tvb, int offset,
guint8 *addr, guint32 prefix_len);
extern int tvb_get_ipv6_addr_with_prefix_len(tvbuff_t *tvb, int offset,
ws_in6_addr *addr, guint32 prefix_len);
guint32 ip_get_subnet_mask(const guint32 mask_length);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __ADDR_AND_MASK_H__ */