1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 #ifndef foosdlldptxhfoo
3 #define foosdlldptxhfoo
6 systemd is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published by
8 the Free Software Foundation; either version 2.1 of the License, or
9 (at your option) any later version.
11 systemd is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public License
17 along with systemd; If not, see <https://www.gnu.org/licenses/>.
22 #include <net/ethernet.h>
23 #include <sys/types.h>
28 #include "_sd-common.h"
30 _SD_BEGIN_DECLARATIONS
;
32 typedef struct sd_lldp_tx sd_lldp_tx
;
34 __extension__
typedef enum sd_lldp_multicast_mode_t
{
35 SD_LLDP_MULTICAST_MODE_NEAREST_BRIDGE
,
36 SD_LLDP_MULTICAST_MODE_NON_TPMR_BRIDGE
,
37 SD_LLDP_MULTICAST_MODE_CUSTOMER_BRIDGE
,
38 _SD_LLDP_MULTICAST_MODE_MAX
,
39 _SD_LLDP_MULTICAST_MODE_INVALID
= -EINVAL
,
40 _SD_ENUM_FORCE_S64(LLDP_TX_MODE
)
41 } sd_lldp_multicast_mode_t
;
43 int sd_lldp_tx_new(sd_lldp_tx
**ret
);
44 sd_lldp_tx
*sd_lldp_tx_ref(sd_lldp_tx
*lldp_tx
);
45 sd_lldp_tx
*sd_lldp_tx_unref(sd_lldp_tx
*lldp_tx
);
47 int sd_lldp_tx_start(sd_lldp_tx
*lldp_tx
);
48 int sd_lldp_tx_stop(sd_lldp_tx
*lldp_tx
);
49 int sd_lldp_tx_is_running(sd_lldp_tx
*lldp_tx
);
51 int sd_lldp_tx_attach_event(sd_lldp_tx
*lldp_tx
, sd_event
*event
, int64_t priority
);
52 int sd_lldp_tx_detach_event(sd_lldp_tx
*lldp_tx
);
54 int sd_lldp_tx_set_ifindex(sd_lldp_tx
*lldp_tx
, int ifindex
);
55 int sd_lldp_tx_set_ifname(sd_lldp_tx
*lldp_tx
, const char *ifname
);
56 int sd_lldp_tx_get_ifname(sd_lldp_tx
*lldp_tx
, const char **ret
);
58 int sd_lldp_tx_set_multicast_mode(sd_lldp_tx
*lldp_tx
, sd_lldp_multicast_mode_t mode
);
59 int sd_lldp_tx_set_hwaddr(sd_lldp_tx
*lldp_tx
, const struct ether_addr
*hwaddr
);
60 int sd_lldp_tx_set_port_description(sd_lldp_tx
*lldp_tx
, const char *port_description
);
61 int sd_lldp_tx_set_hostname(sd_lldp_tx
*lldp_tx
, const char *hostname
);
62 int sd_lldp_tx_set_pretty_hostname(sd_lldp_tx
*lldp_tx
, const char *pretty_hostname
);
63 int sd_lldp_tx_set_mud_url(sd_lldp_tx
*lldp_tx
, const char *mud_url
);
64 int sd_lldp_tx_set_capabilities(sd_lldp_tx
*lldp_tx
, uint16_t supported
, uint16_t enabled
);
66 _SD_DEFINE_POINTER_CLEANUP_FUNC(sd_lldp_tx
, sd_lldp_tx_unref
);