summaryrefslogtreecommitdiff
path: root/vrrpd/vrrp_packet.c
diff options
context:
space:
mode:
authorQuentin Young <qlyoung@cumulusnetworks.com>2019-01-07 19:02:53 +0000
committerQuentin Young <qlyoung@cumulusnetworks.com>2019-05-17 00:27:08 +0000
commitdad18a2fd76a8bd30dff5d1fa030a69962349b85 (patch)
tree7d192f9e41a4f1047d5825e91c953fb454dedfba /vrrpd/vrrp_packet.c
parentbb54fa3a0035e29aa97fc6638d71b8f57fe366e4 (diff)
vrrpd: add initial macvlan support
* Search for macvlan interfaces with the appropriate name and MAC address when starting up a new VRRP instance * Split VRRP socket into two; one for Tx, one for Rx * Bind Tx socket to the macvlan subinterface so our VRRP advertisements go out with the correct MAC address * Send ARP requests from this macvlan subinterface * Improve error messaging Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'vrrpd/vrrp_packet.c')
-rw-r--r--vrrpd/vrrp_packet.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/vrrpd/vrrp_packet.c b/vrrpd/vrrp_packet.c
index d305081574..5010b4701d 100644
--- a/vrrpd/vrrp_packet.c
+++ b/vrrpd/vrrp_packet.c
@@ -149,7 +149,9 @@ ssize_t vrrp_parse_datagram(int family, struct msghdr *m, size_t read,
ntohs(ip->ip_len), read);
/* TTL check */
- VRRP_PKT_VCHECK(ip->ip_ttl == 255, "IPv4 TTL is not 255");
+ VRRP_PKT_VCHECK(ip->ip_ttl == 255,
+ "IPv4 TTL is %" PRIu8 "; should be 255",
+ ip->ip_ttl);
*pkt = (struct vrrp_pkt *)(buf + (ip->ip_hl << 2));
pktsize = read - (ip->ip_hl << 2);
@@ -167,7 +169,9 @@ ssize_t vrrp_parse_datagram(int family, struct msghdr *m, size_t read,
VRRP_PKT_VCHECK(!!c, "IPv6 Hop Limit not received");
uint8_t *hoplimit = CMSG_DATA(c);
- VRRP_PKT_VCHECK(*hoplimit == 255, "IPv6 Hop Limit is not 255");
+ VRRP_PKT_VCHECK(*hoplimit == 255,
+ "IPv6 Hop Limit is %" PRIu8 "; should be 255",
+ *hoplimit);
*pkt = (struct vrrp_pkt *)buf;
pktsize = read;