NAME

Net::Nmsg::Util - Perl extension for the NMSG message interchange library

SYNOPSIS

# Provide access to constants, data types, and various utility
# functions in, or relating to, the nmsg library

use Net::Nmsg::Util qw(
  :all
  :buffer
  :field
  :iface
  :io
  :result
  :sniff
  :vendor
  :channel
  :alias
  DEBUG
);

DESCRIPTION

Net::Nmsg::Util exposes constants, data types, and functions of libnmsg. These are primarily intended for development purposes rather than typical usage.

EXPORTED CONSTANTS AND FUNCTIONS

Functions and constants being individually exportable. To export everything, use ':all'. The following tag groups are also available:

Tag group :channel

is_channel($channel)
channel_lookup($channel)

Tag group :alias

NMSG_ALIAS_OPERATOR
NMSG_ALIAS_GROUP

alias_by_key($key)
alias_by_value($val)
operator_lookup($name_or_val)
group_lookup($name_or_val)

Tag group :sniff

is_nmsg_file($name)
is_pcap_file($name)
is_interface($name)
is_socket($handle)
is_file($handle_or_name)
is_filehandle($handle)
is_channel($channel)
expand_socket_spec($spec)

Tag group :vendor

vendor_lookup($vendor_name_or_id)
message_lookup($msg_type_or_id)
mv_lookup($vendor_name_or_id, $msg_type_or_id)
vendors()

get_max_vid()
get_max_msgtype($vid)
mname_to_msgtype($vid, $name)
msgtype_to_mname($vid, $msgtype)
vname_to_vid($name)
vid_to_vname($vid)

Tag group :iface

Note that some of these, such as interfaces(), rely upon libpcap(3). As such, root privileges are likely necessary for them to be useful.

is_interface($name)
interfaces()
interface_descriptions()
interface_detection_error()

Tag group :buffer

NMSG_WBUFSZ_ETHER
NMSG_WBUFSZ_JUMBO
NMSG_WBUFSZ_MAX
NMSG_WBUFSZ_MIN

Tag group :field

NMSG_FT_ENUM
NMSG_FT_BYTES
NMSG_FT_STRING
NMSG_FT_MLSTRING
NMSG_FT_IP
NMSG_FT_UINT16
NMSG_FT_UINT32
NMSG_FT_UINT64
NMSG_FT_INT16
NMSG_FT_INT32
NMSG_FT_INT64
NMSG_FT_DOUBLE
NMSG_FT_BOOL

NMSG_FF_REPEATED
NMSG_FF_REQUIRED
NMSG_FF_NOPRINT
NMSG_FF_HIDDEN

field_types()
field_flags()

Tag group :io

NMSG_INPUT_TYPE
NMSG_OUTPUT_TYPE

NMSG_OUTPUT_TYPE_STREAM
NMSG_OUTPUT_TYPE_PRES
NMSG_OUTPUT_TYPE_CALLBACK

NMSG_INPUT_TYPE_STREAM
NMSG_INPUT_TYPE_PRES
NMSG_INPUT_TYPE_PCAP

NMSG_OUTPUT_MODE_STRIPE
NMSG_OUTPUT_MODE_MIRROR

NMSG_CLOSE_TYPE_EOF
NMSG_CLOSE_TYPE_COUNT
NMSG_CLOSE_TYPE_INTERVAL

NMSG_DEFAULT_SNAPLEN
NMSG_DEFAULT_PROMISC

NMSG_DEFAULT_SO_FREQ
NMSG_DEFAULT_SO_RATE
NMSG_DEFAULT_SO_SNDBUF
NMSG_DEFAULT_SO_RCVBUF

NMSG_PORT_MAXRANGE

Tag group :result

NMSG_RES_SUCCESS
NMSG_RES_FAILURE
NMSG_RES_EOF
NMSG_RES_MEMFAIL
NMSG_RES_MAGIC_MISMATCH
NMSG_RES_VERSION_MISMATCH
NMSG_RES_PBUF_READY
NMSG_RES_NOTIMPL
NMSG_RES_STOP
NMSG_RES_AGAIN
NMSG_RES_PARSE_ERROR
NMSG_RES_PCAP_ERROR
NMSG_RES_READ_FAILURE

lookup_result($result_id)

SEE ALSO

Net::Nmsg::IO, Net::Nmsg::Input, Net::Nmsg::Output, nmsgtool(3)

AUTHOR

Matthew Sisk, <sisk@cert.org>

COPYRIGHT AND LICENSE

Copyright (C) 2010-2013 by Carnegie Mellon University

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, as published by the Free Software Foundation, under the terms pursuant to Version 2, June 1991.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.