test_mrtlib: Test cases for ADD_PATH

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
IWASE Yusuke 2018-03-30 11:33:57 +09:00 committed by FUJITA Tomonori
parent 807185470e
commit bc5bf0dbb6

View File

@ -19,6 +19,7 @@ import bz2
import io
import logging
import os
import struct
import sys
import unittest
@ -609,6 +610,66 @@ class TestMrtlibMrtPeer(unittest.TestCase):
eq_(buf, output)
class TestMrtlibMrtRibEntry(unittest.TestCase):
"""
Test case for ryu.lib.mrtlib.MrtRibEntry.
"""
def test_parse_add_path(self):
peer_index = 1
originated_time = 2
nexthop = '1.1.1.1'
bgp_attribute = bgp.BGPPathAttributeNextHop(nexthop)
path_id = 3
bgp_attr_buf = bgp_attribute.serialize()
attr_len = len(bgp_attr_buf)
buf = (
b'\x00\x01' # peer_index
b'\x00\x00\x00\x02' # originated_time
b'\x00\x00\x00\x03' # path_id
+ struct.pack('!H', attr_len) # attr_len
+ bgp_attribute.serialize() # bgp_attributes
)
rib, rest = mrtlib.MrtRibEntry.parse(buf, is_addpath=True)
eq_(peer_index, rib.peer_index)
eq_(originated_time, rib.originated_time)
eq_(path_id, rib.path_id)
eq_(attr_len, rib.attr_len)
eq_(1, len(rib.bgp_attributes))
eq_(nexthop, rib.bgp_attributes[0].value)
eq_(b'', rest)
def test_serialize_add_path(self):
peer_index = 1
originated_time = 2
nexthop = '1.1.1.1'
bgp_attribute = bgp.BGPPathAttributeNextHop(nexthop)
path_id = 3
bgp_attr_buf = bgp_attribute.serialize()
attr_len = len(bgp_attr_buf)
buf = (
b'\x00\x01' # peer_index
b'\x00\x00\x00\x02' # originated_time
b'\x00\x00\x00\x03' # path_id
+ struct.pack('!H', attr_len) # attr_len
+ bgp_attribute.serialize() # bgp_attributes
)
rib = mrtlib.MrtRibEntry(
peer_index=peer_index,
originated_time=originated_time,
bgp_attributes=[bgp_attribute],
# attr_len=attr_len,
path_id=path_id,
)
output = rib.serialize()
eq_(buf, output)
class TestMrtlibBgp4MpMrtRecord(unittest.TestCase):
"""
Test case for ryu.lib.mrtlib.Bgp4MpMrtRecord.