The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::Interface::NetSymbols - AF_ PF_ IFxxx type symbols

SYNOPSIS

This module is built for this specific architecture during the make process using inst/netsymbols.pl. Do not edit this module, edit inst/netsymbols.pl instead.

This module contains symbols arrays only for use by Net::Interface, in all other respects it is NOT functional. It contains documentation and data arrays for this specific architecture.

NOTE: WARNING !!

usage is Net::Interface

NOT Net::Interface::NetSymbols

use Net::Interface qw(

	Net::Interface::NetSymbols::NI_ENDVAL();
	Net::Interface::NetSymbols::NI_UNIQUE();
|;

  print NFe qq|@afs

@pfs

@ifs

@iffs |;

if (@iffIN6) {
  print NFe qq|
@iffIN6	populated for BSD flavored systems

:all :afs :pfs :ifs :iffs :iffIN6 :iftype :scope

); |; } else { print NFe qq| :all :afs :pfs :ifs :iffs :iftype :scope

); |; } print NFe q| =head1 DESCRIPTION

All of the AF_XXX and PF_XXX symbols available in local sys/socket.h plus usual aliases for AF_LOCAL i.e. (AF_FILE AF_UNIX PF_LOCAL PF_FILE PF_UNIX)

All of the IFxxxx and IN6_IF symbols in net/if.h, netinet/in.h, netinet/in_var.h and their includes.

Symbols may be accessed for their numeric value or their string name.

  i.e.	if ($family == AF_INET)
	    do something...

    or	print AF_INET
    will product the string "inet"

The same holds true for:

	printf("family is %s",AF_INET);
    or	sprint("family is %s",AF_INET);

To print the numeric value of the SYMBOL do:

print (0 + SYMBOL), "\n";

|;

  if (exists $fam{AF_INET6}) {
    print NFe q|On systems supporting IPV6, these additional symbols are available which
may be applied to the address I<type> to determine the address attributes.

    IPV6_ADDR_ANY		unknown
    IPV6_ADDR_UNICAST		unicast
    IPV6_ADDR_MULTICAST		multicast
    IPV6_ADDR_ANYCAST		anycast
    IPV6_ADDR_LOOPBACK		loopback
    IPV6_ADDR_LINKLOCAL		link-local
    IPV6_ADDR_SITELOCAL		site-local
    IPV6_ADDR_COMPATv4		compat-v4
    IPV6_ADDR_SCOPE_MASK	scope-mask
    IPV6_ADDR_MAPPED		mapped
    IPV6_ADDR_RESERVED		reserved
    IPV6_ADDR_ULUA		uniq-lcl-unicast
    IPV6_ADDR_6TO4		6to4
    IPV6_ADDR_6BONE		6bone
    IPV6_ADDR_AGU		global-unicast
    IPV6_ADDR_UNSPECIFIED	unspecified
    IPV6_ADDR_SOLICITED_NODE	solicited-node
    IPV6_ADDR_ISATAP		ISATAP
    IPV6_ADDR_PRODUCTIVE	productive
    IPV6_ADDR_6TO4_MICROSOFT	6to4-ms
    IPV6_ADDR_TEREDO		teredo
    IPV6_ADDR_ORCHID		orchid
    IPV6_ADDR_NON_ROUTE_DOC	non-routeable-doc

    if ($type & IPV6_ADDR_xxxx) {
	print IPV6_ADDR_xxxx,"\n";
    }

These symbols may be equated to the scope of the address.

    RFC2373_GLOBAL		global-scope
    RFC2373_ORGLOCAL		org-local
    RFC2373_SITELOCAL		site-local
    RFC2373_LINKLOCAL		link-local
    RFC2373_NODELOCAL		loopback
    LINUX_COMPATv4		lx-compat-v4

    if ($scope eq RFC2373_xxxx) {
	print RFC2373_xxxx,"\n";
    }

|; }

print NFe q|
=over 4
  • :all Import all symbols

  • :afs Import all AF_XXX symbols

  • :pfs Import all PF_XXX symbols

  • :ifs Import all IFxxxx symbols

  • :iffs Import all IFF symbols |;

    if (@iffIN6) {
      print NFe q|
    =item * :iffIN6	Import all IN6_IFF symbols (BSD flavors only)
    |;
    }
    
    if (exists $fam{AF_INET6}) {
      print NFe q|
    =item * :iftype	Import all IPV6 type symbols
  • :scope Import all IPV6 scope symbols |; }

    print NFe q|
    =back

non EXPORT functions

  • Net::Interface::NetSymbols::NI_ENDVAL();

    Reports the highest symbol value +1 of :all symbols above. Used for testing.

  • Net::Interface::NetSymbols::NI_UNIQUE();

    Returns a hash pointer to the AF_ or PF_ symbol values mapped to their character strings as defined for this architecture.

    i.e.
    |, $utxt, q|
    =head1 AUTHOR	Michael Robinton <michael@bizsystems.com>

COPYRIGHT |. ((localtime())[5] +1900) .q|

Michael Robinton, all rights reserved.

This library is free software. You can distribute it and/or modify it under the same terms as Perl itself.

3 POD Errors

The following errors were encountered while parsing the POD:

Around line 748:

'=item' outside of any '=over'

Around line 776:

You forgot a '=back' before '=head1'

Around line 793:

You forgot a '=back' before '=head1'