SNMP::Info::Layer3::Pf - SNMP Interface to FreeBSD-Based Firewalls using Pf /Pf Sense


Max Baker


 # Let SNMP::Info determine the correct subclass for you.
 my $pf = new SNMP::Info(
                        AutoSpecify => 1,
                        Debug       => 1,
                        # These arguments are passed directly to SNMP::Session
                        DestHost    => 'myswitch',
                        Community   => 'public',
                        Version     => 2
    or die "Can't connect to DestHost.\n";

 my $class      = $pf->class();
 print "SNMP::Info determined this device to fall under subclass : $class\n";


Subclass for FreeBSD PF-Based devices

LLDP Support

LLDP Support is included but untested in this Device Class. It is reported that the available CDP/LLDP modules for net-snmp don't work on FreeBSD (on which pfSense is based) as they assume certain Linux specific Ethernet structures. This problem is apparently solved on PF based firewall appliances by using the ladvd package, for which a port may be found here: I'm not sure if this module ties into Net-SNMP or not.

Inherited Classes


Required MIBs

Inherited Classes' MIBs

See "Required MIBs" in SNMP::Info::Layer3 for its own MIB requirements.


These are methods that return scalar values from SNMP


Returns 'freebsd'


Grabs the os version from sysDescr


Returns 'Pf'


Tries to reference $pf->id() to one of the product MIBs listed above. Will probably return a truncation of the default OID for pf-based systems enterprises.12325.

Global Methods imported from SNMP::Info::Layer3

See documentation in "GLOBALS" in SNMP::Info::Layer3 for details.


These are methods that return tables of information in the form of a reference to a hash.

Table Methods imported from SNMP::Info::Layer3

See documentation in "TABLE METHODS" in SNMP::Info::Layer3 for details.