MRT file library

Introduction

OS-Ken MRT file library helps you to read/write MRT (Multi-Threaded Routing Toolkit) Routing Information Export Format [RFC6396].

Reading MRT file

For loading the routing information contained in MRT files, you can use mrtlib.Reader.

class os_ken.lib.mrtlib.Reader(f)

MRT format file reader.

Argument

Description

f

File object which reading MRT format file in binary mode.

Example of Usage:

import bz2
from os_ken.lib import mrtlib

count = 0
for record in mrtlib.Reader(
        bz2.BZ2File('rib.YYYYMMDD.hhmm.bz2', 'rb')):
    print("%d, %s" % (count, record))
    count += 1

Writing MRT file

For dumping the routing information which your OSKenApp generated, you can use mrtlib.Writer.

class os_ken.lib.mrtlib.Writer(f)

MRT format file writer.

Argument

Description

f

File object which writing MRT format file in binary mode.

Example of usage:

import bz2
import time
from os_ken.lib import mrtlib
from os_ken.lib.packet import bgp

mrt_writer = mrtlib.Writer(
    bz2.BZ2File('rib.YYYYMMDD.hhmm.bz2', 'wb'))

prefix = bgp.IPAddrPrefix(24, '10.0.0.0')

rib_entry = mrtlib.MrtRibEntry(
    peer_index=0,
    originated_time=int(time.time()),
    bgp_attributes=[bgp.BGPPathAttributeOrigin(0)])

message = mrtlib.TableDump2RibIPv4UnicastMrtMessage(
    seq_num=0,
    prefix=prefix,
    rib_entries=[rib_entry])

record = mrtlib.TableDump2MrtRecord(
    message=message)

mrt_writer.write(record)