The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

OSPF::LSDB - class containing OSPF link state database

SYNOPSIS

use OSPF::LSDB;

my $ospf = OSPF::LSDB->new();

DESCRIPTION

The OSPF::LSDB module serves as base class for all the other OSPF::LSDB::... modules. It contains the link state database, can do versioning and validation. To parse, load, store or display the LSDB, convert it into instances of more specific classes. The new() method implements a copy constructor to share LSDB references with minimal overhead.

Most names of the database fields are named after RFC 2328 - OSPF version 2. Keys of RFC 5340 - OSPF for IPv6 with a comparable semantics in version 2, have kept their old names to allow code reuse.

$OSPF::LSDB::VERSION

The version number of the OSPF::LSDB modules. It is also stored in the database dump and thus can be used to upgrade the file.

OSPF::LSDB->new($other)

Construct a OSPF::LSDB object. If another OSPF::LSDB object is passed as argument, the new object is contructed with the other's objects database as reference. This can be used to convert between different OSPF::LSDB::... instances and use their specific features.

$self->get_errors()

Returns a list with all errors occured so far. The internal error array gets reset.

$self->ipv6()

Returns true if the ospf database is version 3 for ipv6.

$self->convert()

While the version of the current database is less than the module version, apply the conversion functions step by step. The conversion fails if the final major and minor numbers of the database version do not match the module version. The patchlevel is ignored.

$self->validate()

Ensure that the internal data structure has the correct version and is valid.

ERRORS

The methods die if any error occures.

SEE ALSO

OSPF::LSDB::View, OSPF::LSDB::View6, OSPF::LSDB::YAML, OSPF::LSDB::gated, OSPF::LSDB::ospfd

ospfconvert

RFC 2328 - OSPF Version 2 - April 1998

RFC 5340 - OSPF for IPv6 - July 2008

AUTHORS

Alexander Bluhm