---
name: "Net::Interface::NetSymbols"
section: "3pm"
platform: "linux"
package: "libnet-interface-perl"
version: "1.016-3+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::Interface::NetSymbols"
---

# Net::Interface::NetSymbols(3pm)

AF\_ PF\_ IFxxx type symbols

## 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();
AF_UNSPEC AF_FILE AF_LOCAL AF_UNIX AF_INET AF_AX25 AF_IPX AF_APPLETALK AF_X25 AF_INET6 AF_ROSE AF_DECnet AF_PACKET AF_ROUTE AF_ASH AF_ECONET AF_MAX
```

PF\_UNSPEC PF\_FILE PF\_LOCAL PF\_UNIX PF\_INET PF\_AX25 PF\_IPX PF\_APPLETALK PF\_X25 PF\_INET6 PF\_ROSE PF\_DECnet PF\_PACKET PF\_ROUTE PF\_ASH PF\_ECONET PF\_MAX

IFF\_ALLMULTI IFF\_AUTOMEDIA IFF\_BROADCAST IFF\_DEBUG IFF\_DYNAMIC IFF\_LOOPBACK IFF\_MASTER IFF\_MULTICAST IFF\_NOARP IFF\_NOTRAILERS IFF\_POINTOPOINT IFF\_PORTSEL IFF\_PROMISC IFF\_RUNNING IFF\_SLAVE IFF\_UP IFHWADDRLEN IFNAMSIZ IF\_NAMESIZE

IFF\_ALLMULTI IFF\_AUTOMEDIA IFF\_BROADCAST IFF\_DEBUG IFF\_DYNAMIC IFF\_LOOPBACK IFF\_MASTER IFF\_MULTICAST IFF\_NOARP IFF\_NOTRAILERS IFF\_POINTOPOINT IFF\_PORTSEL IFF\_PROMISC IFF\_RUNNING IFF\_SLAVE IFF\_UP

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

);

## 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";
```

On systems supporting IPV6, these additional symbols are available which may be applied to the address *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";
    }
```

- •

  :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

- •

  :iftype	Import all IPV6 type symbols

- •

  :scope	Import all IPV6 scope symbols

## 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.
          0       => 'PF_UNSPEC',
          1       => 'PF_LOCAL',
          2       => 'PF_INET',
          3       => 'PF_AX25',
          4       => 'PF_IPX',
          5       => 'PF_APPLETALK',
          9       => 'PF_X25',
          10      => 'PF_INET6',
          11      => 'PF_ROSE',
          12      => 'PF_DECnet',
          17      => 'PF_PACKET',
          18      => 'PF_ASH',
          19      => 'PF_ECONET',
          46      => 'PF_MAX',
  ```

## AUTHOR Michael Robinton \<michael@bizsystems.com\>

## COPYRIGHT 2008-2009

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.
