Source code for pcapkit.protocols.data.link.ospf
# -*- coding: utf-8 -*-
"""data models for OSPF protocol"""
from typing import TYPE_CHECKING
from pcapkit.corekit.infoclass import info_final
from pcapkit.protocols.data.data import Data
from pcapkit.protocols.data.protocol import Protocol
if TYPE_CHECKING:
from ipaddress import IPv4Address
from pcapkit.const.ospf.authentication import Authentication
from pcapkit.const.ospf.packet import Packet
__all__ = ['OSPF', 'CrytographicAuthentication']
[docs]
@info_final
class CrytographicAuthentication(Data):
"""Data model for OSPF crytographic authentication."""
#: Key ID.
key_id: 'int'
#: Authentication data length.
len: 'int'
#: Cryptographic sequence number.
seq: 'int'
if TYPE_CHECKING:
def __init__(self, key_id: 'int', len: 'int', seq: 'int') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,redefined-builtin
[docs]
@info_final
class OSPF(Protocol):
"""Data model for OSPF packet."""
#: Version number.
version: 'int'
#: Type.
type: 'Packet'
#: Packet length (header included).
len: 'int'
#: Router ID.
router_id: 'IPv4Address'
#: Area ID.
area_id: 'IPv4Address'
#: Checksum.
chksum: 'bytes'
#: Authentication type.
autype: 'Authentication'
if TYPE_CHECKING:
#: Authentication.
auth: 'bytes | CrytographicAuthentication'
def __init__(self, version: 'int', type: 'Packet', len: 'int', router_id: 'IPv4Address',
area_id: 'IPv4Address', chksum: 'bytes', autype: 'Authentication') -> 'None': ... # pylint: disable=super-init-not-called,unused-argument,line-too-long,multiple-statements,redefined-builtin