Merge pull request #1012 from donaldsharp/eigrp_send_version

eigrpd: Setup eigrp to send FRR version
This commit is contained in:
David Lamparter 2017-08-22 14:59:22 +02:00 committed by GitHub
commit 57a553fd9c
3 changed files with 19 additions and 4 deletions

View File

@ -405,6 +405,20 @@ void eigrp_hello_receive(struct eigrp *eigrp, struct ip *iph,
inet_ntoa(nbr->src)); inet_ntoa(nbr->src));
} }
u_int32_t FRR_MAJOR;
u_int32_t FRR_MINOR;
void eigrp_sw_version_initialize(void)
{
char ver_string[] = VERSION;
char *dash = strstr(ver_string, "-");
if (dash)
dash[0] = '\0';
sscanf(ver_string, "%d.%d", &FRR_MAJOR, &FRR_MINOR);
}
/** /**
* @fn eigrp_sw_version_encode * @fn eigrp_sw_version_encode
* *
@ -425,10 +439,8 @@ static u_int16_t eigrp_sw_version_encode(struct stream *s)
stream_putw(s, EIGRP_TLV_SW_VERSION); stream_putw(s, EIGRP_TLV_SW_VERSION);
stream_putw(s, length); stream_putw(s, length);
// encode the version of quagga we're running stream_putc(s, FRR_MAJOR); //!< major os version
// DVS: need to figure out a cleaner way to do this stream_putc(s, FRR_MINOR); //!< minor os version
stream_putc(s, 0); //!< major os version
stream_putc(s, 99); //!< minor os version
/* and the core eigrp version */ /* and the core eigrp version */
stream_putc(s, EIGRP_MAJOR_VERSION); stream_putc(s, EIGRP_MAJOR_VERSION);

View File

@ -159,6 +159,8 @@ int main(int argc, char **argv, char **envp)
} }
} }
eigrp_sw_version_initialize();
/* EIGRP master init. */ /* EIGRP master init. */
eigrp_master_init(); eigrp_master_init();
eigrp_om->master = frr_init(); eigrp_om->master = frr_init();

View File

@ -71,6 +71,7 @@ extern int eigrp_unack_multicast_packet_retrans(struct thread *);
* untill there is reason to have their own header, these externs are found in * untill there is reason to have their own header, these externs are found in
* eigrp_hello.c * eigrp_hello.c
*/ */
extern void eigrp_sw_version_initialize(void);
extern void eigrp_hello_send(struct eigrp_interface *, u_char, extern void eigrp_hello_send(struct eigrp_interface *, u_char,
struct in_addr *); struct in_addr *);
extern void eigrp_hello_send_ack(struct eigrp_neighbor *); extern void eigrp_hello_send_ack(struct eigrp_neighbor *);