GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Net::ACL(3) User Contributed Perl Documentation Net::ACL(3)

Net::ACL - Class representing a generic access-list/route-map

    use Net::ACL;
    use Net::ACL::Rule qw( :action :rc );

    # Constructor
    $list = new Net::ACL(
        Name    => 'MyACL',
        Type    => 'prefix-list',
        Rule    => new Net::ACL::Rule( .. )
        );

    # Fetch existing object by name
    $list = renew Net::ACL(
        Name    => 'MyACL'
        Type    => 'prefix-list'
        );
    $list = renew Net::ACL("$list");

    # Object Copy
    $clone = $list->clone();

    # Class methods
    $type_names_hr = Net::ACL->knownlists();

    # Accessor Methods
    $list->add_rule($rule);
    $list->remove_rule($rule);
    $name = $list->name($name);
    $type = $list->type($type);
    $rc = $list->match(@data);
    ($rc,@data) = $list->query(@data);

This module represents a generic access-list and route-map. It uses the Net::ACL::Rule object to represent the rules.

new() - create a new Net::ACL object
    $list = new Net::ACL(
        Name    => 'MyACL',
        Type    => 'prefix-list',
        Rule    => new Net::ACL::Rule( .. )
        );
    

This is the constructor for Net::ACL objects. It returns a reference to the newly created object. The following named parameters may be passed to the constructor.

Name
The name parameter is optional and is only used to identify a list by the renew() constructor.
Type
The type parameter is optional and defaults to the class name. It is used have different namespaces for the Name parameter. It is intended to have values like 'ip-accesslist', 'prefix-list', 'as-path-filter' and 'route-map'. This way the same name or number of an access-list could be reused in each class.
Rule
The rule parameter could be present one or more times. Each one can have multiple types:
Net::ACL::Rule
A Net::ACL::Rule object.
ARRAY
An array reference of Net::ACL::Rule objects.
HASH
A hash reference with Net::ACL:Rule objects as values. Keys are currently ignored, but might later be used as sequance numbers or labels.
renew() - fetch an existing Net::ACL object
    $list = renew Net::ACL(
        Name    => 'MyACL'
        Type    => 'prefix-list'
        );
    $list = renew Net::ACL("$list");
    

The renew constructor localizes an existing ACL object from either Name, (Name,Type)-pair or the object in string context (e.g. "Net::ACL=HASH(0x823ff84)"). The Name and Type arguments have similar meaning as for the new() constructor.

clone() - clone a Net::ACL object
    $clone = $list->clone();
    

This method creates an exact copy of the Net::ACL object and all the rules. The clone will not have a name unless one is assigned explicitly later.

name()
type()
The name() and type() methods return the access-list name and type fields respectively. If called with an argument they change the value to that of the argument.
match()
The match method implements the basics of a standard router access-list matching.

It gets any arbitrary number of arguments. The arguments are passed to the match() method of each of the Net::ACL::Rule rules except any object which have the action() field set to "ACL_CONTINUE". When a match() method returns "ACL_MATCH", the action() of that entry is returned.

query()
The query method implements the basics of a route-map execution.

It calls the Net::ACL::Rule rules query() method one by one as long as they return "ACL_CONTINUE".

The function returns the result code ("ACL_PERMIT" or "ACL_DENY") and the, possibly modified, arguments of the function.

add_rule()
remove_rule()
The add() and remove() rule methods can add and remove rules after object construction.

Net::ACL::Rule, Net::ACL::File, Net::ACL::Bootstrap

Martin Lorensen <bgp@martin.lorensen.dk>
2003-06-06 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.