View on
MetaCPAN
search.cpan.org is shutting down
For details read Perl NOC. After June 25th this page will redirect to MetaCPAN.org
Антон Южанинов > Net-CIDR-ORTC-0.01 > Net::CIDR::ORTC

Download:
Net-CIDR-ORTC-0.01.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.01   Source   Latest Release: Net-CIDR-ORTC-0.02

NAME ^

Net::CIDR::ORTC - CIDR map compression

SYNOPSIS ^

  use Net::CIDR::ORTC;

  my $map = Net::CIDR::ORTC->new();

  $map->add('0.0.0.0/0', 0);
  $map->add('192.168.0.0/24', 'value1');
  $map->add('192.168.1.0/24', 'value1');

  $map->compress();

  my $prefixes = $map->list;

  foreach (@$prefixes) {
    say $_->[0] . "\t" . $_->[1];
  }

DESCRIPTION ^

This module implements Optimal Routing Table Compressor (ORTC) algorithm as described in Technical Report MSR-TR-98-59.

This module intended for offline data processing and not optimal in terms of CPU time and memory usage, but output table should have smallest number of prefixes whits same behaviour (with longest-prefix match lookup).

Sometimes this algorithm makes unnecessary changes to input data (prefixes changed, but number of prefixes in output is same as in input), but it is not easy to fix this without making algorithm non-optimal (increasing number of output prefixes in general case).

METHODS ^

new

create a Net::CIDR::ORTC object

Arguments: none Returns: new object

add

Add prefix -> value pair to internal tree.

Arguments: net - prefix in ip/len form, e. g. 192.0.2.0/24 value - any defined scalar

Returns: none

remove

Remove exactly matches prefix from tree.

Arguments: net - prefix in ip/len form, e. g. 192.0.2.0/24

Returns: true if prefix found and removed, undef if prefix is not found

compress

Compress tree using ORTC algorithm

Arguments: none Returns: none

list

Return list of current prefixes with values

Arguments: none Returns: reference to array like:

    [ ['0.0.0.0/0', 'default'], ['64.0.0.0/2', 2], ['192.0.0.0/2', 3]

LIMITATIONS ^

Only IPv4 currently supported.

BUGS ^

Please report bugs to https://bitbucket.org/citrin/p5-net-cidr-ortc/issues

AUTHORS ^

Anton Yuzhaninov <ayuzhaninov@openstat.ru>, Denis Pokataev <dpokataev@openstat.ru>. Initial version was sponsored by Openstat.

LICENCE ^

This is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.16.2 or, at your option, any later version of Perl 5 you may have available.

syntax highlighting: