HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/exabgp/protocol/__init__.py
# encoding: utf-8
"""
__init__.py

Created by Thomas Mangin on 2010-01-15.
Copyright (c) 2009-2017 Exa Networks. All rights reserved.
License: 3-clause BSD. (See the COPYRIGHT file)
"""

from exabgp.util import character

from exabgp.protocol.resource import Resource


# ===================================================================== Protocol
# https://www.iana.org/assignments/protocol-numbers/


class Protocol(Resource):
    NAME = 'protocol'

    ICMP = 0x01
    IGMP = 0x02
    TCP = 0x06
    EGP = 0x08
    UDP = 0x11
    RSVP = 0x2E
    GRE = 0x2F
    ESP = 0x32
    AH = 0x33
    OSPF = 0x59
    IPIP = 0x5E
    PIM = 0x67
    SCTP = 0x84

    codes = dict(
        (k.lower().replace('_', '-'), v)
        for (k, v) in {
            'ICMP': ICMP,
            'IGMP': IGMP,
            'TCP': TCP,
            'EGP': EGP,
            'UDP': UDP,
            'RSVP': RSVP,
            'GRE': GRE,
            'ESP': ESP,
            'AH': AH,
            'OSPF': OSPF,
            'IPIP': IPIP,
            'PIM': PIM,
            'SCTP': SCTP,
        }.items()
    )

    names = dict([(r, l) for (l, r) in codes.items()])

    def pack(self):
        return character(self)