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/ip/fragment.py
# encoding: utf-8
"""
fragment.py

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

from exabgp.protocol.resource import BitResource


# =================================================================== Fragment

# Uses bitmask operand format defined above.
#   0   1   2   3   4   5   6   7
# +---+---+---+---+---+---+---+---+
# |   Reserved    |LF |FF |IsF|DF |
# +---+---+---+---+---+---+---+---+
#
# Bitmask values:
# +  Bit 7 - Don't fragment (DF)
# +  Bit 6 - Is a fragment (IsF)
# +  Bit 5 - First fragment (FF)
# +  Bit 4 - Last fragment (LF)


class Fragment(BitResource):
    NAME = 'fragment'

    NOT = 0x00
    DONT = 0x01
    IS = 0x02
    FIRST = 0x04
    LAST = 0x08
    # reserved = 0xF0

    codes = dict(
        (k.lower().replace('_', '-'), v)
        for (k, v) in {
            'NOT-A-FRAGMENT': NOT,
            'DONT-FRAGMENT': DONT,
            'IS-FRAGMENT': IS,
            'FIRST-FRAGMENT': FIRST,
            'LAST-FRAGMENT': LAST,
        }.items()
    )

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