BgpUpdateMessage

Namespace: inet::bgp

class BgpUpdateMessage

Represents a BGPv4 UPDATE message.

see RFC 4271 Section 4.3

Usage diagram

Inheritance diagram

Extends

Name

Type

Description

BgpHeader

class

Represents a BGPv4 message header.

Fields

Name

Type

Description

id

int

mutable

bool

complete

bool

correct

bool

properlyRepresented

bool

chunkLength

b

rawBin

string[]

rawHex

string[]

regionTags

SharingRegionTagSet::TagBaseRegionTag[]

chunkLength

marker

uint8_t[16]

totalLength

uint16_t

type

BgpType

type

chunkLength

totalLength

withDrawnRoutesLength

uint16_t

This 2-octets unsigned integer indicates the total length of the Withdrawn Routes field in octets. Its value allows the length of the Network Layer Reachability Information field to be determined, as specified below. A value of 0 indicates that no routes are being withdrawn from service, and that the WITHDRAWN ROUTES field is not present in this UPDATE message.

withdrawnRoutes

BgpUpdateWithdrawnRoutes[]

totalPathAttributeLength

uint16_t

This 2-octets unsigned integer indicates the total length of Path Attributes field in octets. Its value allows the length of the Network Layer Reachability field to be determined as specified below. A value of 0 indicates that neither the Network Layer Reachability Information field nor the Path Attribute field is present in this UPDATE message.

pathAttributes

BgpUpdatePathAttributes*[]

nlri

BgpUpdateNlri[]

Properties

Name

Value

Description

beforeChange

handleChange()

descriptor

readonly

existingClass

packetData

Source code

//
// Represents a BGPv4 UPDATE message.
//
// see RFC 4271 Section 4.3
//
class BgpUpdateMessage extends BgpHeader
{
    type = BGP_UPDATE;
    chunkLength = BGP_HEADER_OCTETS + BGP_EMPTY_UPDATE_OCTETS;
    totalLength = (BGP_HEADER_OCTETS + BGP_EMPTY_UPDATE_OCTETS).get<B>();

    uint16_t withDrawnRoutesLength = 0;    // This 2-octets unsigned integer indicates the total length of
                                           // the Withdrawn Routes field in octets.  Its value allows the
                                           // length of the Network Layer Reachability Information field to
                                           // be determined, as specified below.
                                           //
                                           // A value of 0 indicates that no routes are being withdrawn from
                                           // service, and that the WITHDRAWN ROUTES field is not present in
                                           // this UPDATE message.

    BgpUpdateWithdrawnRoutes withdrawnRoutes[];
    uint16_t totalPathAttributeLength = 0;    // This 2-octets unsigned integer indicates the total length of
                                              // Path Attributes field in octets.  Its value allows the length
                                              // of the Network Layer Reachability field to be determined as
                                              // specified below.
                                              //
                                              // A value of 0 indicates that neither the Network Layer
                                              // Reachability Information field nor the Path Attribute field is
                                              // present in this UPDATE message.
    BgpUpdatePathAttributes* pathAttributes[] @owned @allowReplace;
    BgpUpdateNlri nlri[];
}

File: src/inet/routing/bgpv4/bgpmessage/BgpHeader.msg