Using Reference BooksΒΆ

Reference book allows users to create groups of information that can be used in Batfish queries. They can contain:

Name

Description

Type

name

Name of the reference book

str

addressGroup

A list of addressGroups

List of addressGroup

interfaceGroup

A list of interfaceGroups

List of interfaceGroup

Example usage

Create a reference book for information about border routers and add an InterfaceGroup for the as2 border interfaces

[4]:
interfacegroup = [InterfaceGroup('as2-border',
                                 interfaces = [Interface('as2border1','GigabitEthernet2/0'),
                                               Interface('as2border2', 'GigabitEthernet2/0')])]
refbook = ReferenceBook(name='border', interfaceGroups= interfacegroup)

bf.put_reference_book(refbook)

Example usage

Add an AddressGroup for the IP addresses of all as2 border interfaces to the ReferenceBook('border')

[5]:
refbook = bf.get_reference_book('border')
addressGroup = [
    AddressGroup(name='as2-border', addresses = ['2.12.21.1', '2.12.12.1'])
]
[6]:
refbook.addressGroups.extend(addressGroup)
bf.put_reference_book(refbook)
[7]:
bf.get_reference_book('border')
[7]:
ReferenceBook(name='border', addressGroups=[AddressGroup(name='as2-border', addresses=['2.12.12.1', '2.12.21.1'], childGroupNames=[])], interfaceGroups=[InterfaceGroup(name='as2-border', interfaces=[Interface(hostname='as2border1', interface='GigabitEthernet2/0'), Interface(hostname='as2border2', interface='GigabitEthernet2/0')])])