Bgp deser keepalive
a fake deserializer for BGP
object bgp_deser_keepalive = {}
<<< member
class `bgp_deser_keepalive`;
>>>
<<< impl
class `bgp_deser_keepalive` : public ivy_binary_deser_128 {
enum {bgp_s_init} state;
int token_length = 4;
long frame_type;
int fence=0;
int current_bgp_size = 0;
int payload_length = 12;
public:
bgp_deser_keepalive(const std::vector<char> &inp) : ivy_binary_deser_128(inp),state(bgp_s_init) {
}
virtual void get(int128_t &res) {
switch (state) {
case bgp_s_init:
{
std::cerr << "bgp_s_init 1\n";
}
break;
default:
std::cerr << "bgp_deser_keepalive 3\n";
throw deser_err();
}
}
int128_t reverse_bytes(int128_t bytes)
{
int128_t aux = 0;
uint8_t byte;
int i;
for(i = 0; i < 128; i+=8)
{
byte = (bytes >> i) & 0xff;
aux |= byte << (128 - 8 - i);
}
return aux;
}
virtual int open_tag(const std::vector<std::string> &tags) {
std::cerr << "state = " << state << "\n";
std::cerr << "bgp_deser_keepalive 2\n";
throw deser_err();
}
virtual bool open_list_elem() {
std::cerr << "bgp_deser_keepalive 1\n";
throw deser_err();
}
void open_list() {
}
void close_list() {
}
void close_list_elem() {}
virtual void close_tag() {
}
~bgp_deser_keepalive(){}
};
>>>