summaryrefslogtreecommitdiff
path: root/src/libsystemd-network/arp-util.h
blob: b66a81bf9bda078b81560c69a184613cb573f443 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once

/***
  Copyright © 2014 Axis Communications AB. All rights reserved.
***/

#include <net/ethernet.h>
#include <netinet/in.h>

#include "socket-util.h"
#include "sparse-endian.h"

int arp_update_filter(int fd, const struct in_addr *a, const struct ether_addr *mac);
int arp_network_bind_raw_socket(int ifindex, const struct in_addr *a, const struct ether_addr *mac);

int arp_send_packet(
                int fd,
                int ifindex,
                const struct in_addr *pa,
                const struct ether_addr *ha,
                bool announce);
static inline int arp_send_probe(
                int fd,
                int ifindex,
                const struct in_addr *pa,
                const struct ether_addr *ha) {
        return arp_send_packet(fd, ifindex, pa, ha, false);
}
static inline int arp_send_announcement(
                int fd,
                int ifindex,
                const struct in_addr *pa,
                const struct ether_addr *ha) {
        return arp_send_packet(fd, ifindex, pa, ha, true);
}