libbgp
0.6
A C++ BGP Library.
|
The BgpCapability base class. More...
#include <bgp-capability.h>
Public Member Functions | |
BgpCapability (BgpLogHandler *logger) | |
Construct a new Bgp Capability object. More... | |
virtual ssize_t | parse (const uint8_t *from, size_t msg_sz)=0 |
Deserialize a BGP open message capability. More... | |
virtual ssize_t | write (uint8_t *to, size_t buf_sz) const =0 |
Serialize a BGP open message capability. More... | |
Public Member Functions inherited from libbgp::Serializable | |
Serializable (BgpLogHandler *logger) | |
Construct a new Serializable:: Serializable object. More... | |
~Serializable () | |
Destroy the Serializable:: Serializable object. | |
ssize_t | print (uint8_t *to, size_t buf_sz) const |
Print the Serializable object as human readable string. More... | |
ssize_t | print (size_t indent, uint8_t *to, size_t buf_sz) const |
Print the Serializable object as human readable string, with indentation. More... | |
virtual ssize_t | length () const |
Get size in bytes required to serialize the object. More... | |
bool | hasError () const |
Check if error information available. More... | |
uint8_t | getErrorCode () const |
uint8_t | getErrorSubCode () const |
const uint8_t * | getError () const |
size_t | getErrorLength () const |
void | setLogger (BgpLogHandler *logger) |
Replace logger for this object. More... | |
Public Attributes | |
uint8_t | code |
Protected Member Functions | |
ssize_t | parseHeader (const uint8_t *from, size_t msg_sz) |
Parse the capability header (code, length). More... | |
Protected Member Functions inherited from libbgp::Serializable | |
virtual ssize_t | doPrint (size_t indent, uint8_t **to, size_t *buf_sz) const =0 |
Print implementation. More... | |
void | setError (uint8_t err, uint8_t suberr, const uint8_t *data, size_t data_len) |
Set the error information. More... | |
void | forwardParseError (const Serializable &other) |
Forward error information from other Serializable object. More... | |
Protected Attributes | |
uint8_t | length |
Length of the attribute. Used only when deserializer. More... | |
Protected Attributes inherited from libbgp::Serializable | |
uint8_t | err_code |
uint8_t | err_subcode |
size_t | err_len |
uint8_t * | err_data |
BgpLogHandler * | logger |
Additional Inherited Members | |
Static Protected Member Functions inherited from libbgp::Serializable | |
static ssize_t | _print (size_t indent, uint8_t **to, size_t *buf_left, const char *format,...) |
Print helper. More... | |
The BgpCapability base class.
Definition at line 40 of file bgp-capability.h.
libbgp::BgpCapability::BgpCapability | ( | BgpLogHandler * | logger | ) |
Construct a new Bgp Capability object.
logger | Pointer to logger object for error logging. |
Definition at line 25 of file bgp-capability.cc.
References libbgp::Serializable::length().
|
pure virtual |
Deserialize a BGP open message capability.
from | Pointer to message body buffer. |
msg_sz | Size of message. |
-1 | Deserialization error. Error may be logged. |
>=0 | Bytes read. |
bad_parse | Internal deserialization error. |
bad_type | The type of message/field member in buffer does not match the attribute type of container. |
Implements libbgp::Serializable.
Implemented in libbgp::BgpCapabilityUnknow, libbgp::BgpCapabilityMpBgp, and libbgp::BgpCapability4BytesAsn.
|
protected |
Parse the capability header (code, length).
from | Pointer to buffer. |
msg_sz | Max read size. |
-1 | Failed to deserialize header. errbuf may have details. (see bgp-error.h) |
>=0 | Bytes read. |
Definition at line 39 of file bgp-capability.cc.
References libbgp::Serializable::setError().
Referenced by libbgp::BgpCapability4BytesAsn::parse(), libbgp::BgpCapabilityMpBgp::parse(), and libbgp::BgpCapabilityUnknow::parse().
|
pure virtual |
Serialize a BGP open message capability.
to | Pointer to destination buffer. |
buf_sz | Max write size. |
-1 | Serialization error. Error may be logged. |
>=0 | Bytes written. |
Implements libbgp::Serializable.
Implemented in libbgp::BgpCapabilityUnknow, libbgp::BgpCapabilityMpBgp, and libbgp::BgpCapability4BytesAsn.
|
protected |
Length of the attribute. Used only when deserializer.
Length field is only used in deserialization for parseHeader() to pass attribute length to the underlying deserializers. The length field is ignored when serialize (except BgpCapabilityUnknow).
Definition at line 84 of file bgp-capability.h.