diff options
Diffstat (limited to 'src/systemd/sd-lldp-tx.h')
-rw-r--r-- | src/systemd/sd-lldp-tx.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/systemd/sd-lldp-tx.h b/src/systemd/sd-lldp-tx.h new file mode 100644 index 0000000..2eeb6b6 --- /dev/null +++ b/src/systemd/sd-lldp-tx.h @@ -0,0 +1,70 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#ifndef foosdlldptxhfoo +#define foosdlldptxhfoo + +/*** + systemd is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + systemd is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with systemd; If not, see <https://www.gnu.org/licenses/>. +***/ + +#include <errno.h> +#include <inttypes.h> +#include <net/ethernet.h> +#include <sys/types.h> + +#include "sd-event.h" +#include "sd-lldp.h" + +#include "_sd-common.h" + +_SD_BEGIN_DECLARATIONS; + +typedef struct sd_lldp_tx sd_lldp_tx; + +__extension__ typedef enum sd_lldp_multicast_mode_t { + SD_LLDP_MULTICAST_MODE_NEAREST_BRIDGE, + SD_LLDP_MULTICAST_MODE_NON_TPMR_BRIDGE, + SD_LLDP_MULTICAST_MODE_CUSTOMER_BRIDGE, + _SD_LLDP_MULTICAST_MODE_MAX, + _SD_LLDP_MULTICAST_MODE_INVALID = -EINVAL, + _SD_ENUM_FORCE_S64(LLDP_TX_MODE) +} sd_lldp_multicast_mode_t; + +int sd_lldp_tx_new(sd_lldp_tx **ret); +sd_lldp_tx *sd_lldp_tx_ref(sd_lldp_tx *lldp_tx); +sd_lldp_tx *sd_lldp_tx_unref(sd_lldp_tx *lldp_tx); + +int sd_lldp_tx_start(sd_lldp_tx *lldp_tx); +int sd_lldp_tx_stop(sd_lldp_tx *lldp_tx); +int sd_lldp_tx_is_running(sd_lldp_tx *lldp_tx); + +int sd_lldp_tx_attach_event(sd_lldp_tx *lldp_tx, sd_event *event, int64_t priority); +int sd_lldp_tx_detach_event(sd_lldp_tx *lldp_tx); + +int sd_lldp_tx_set_ifindex(sd_lldp_tx *lldp_tx, int ifindex); +int sd_lldp_tx_set_ifname(sd_lldp_tx *lldp_tx, const char *ifname); +int sd_lldp_tx_get_ifname(sd_lldp_tx *lldp_tx, const char **ret); + +int sd_lldp_tx_set_multicast_mode(sd_lldp_tx *lldp_tx, sd_lldp_multicast_mode_t mode); +int sd_lldp_tx_set_hwaddr(sd_lldp_tx *lldp_tx, const struct ether_addr *hwaddr); +int sd_lldp_tx_set_port_description(sd_lldp_tx *lldp_tx, const char *port_description); +int sd_lldp_tx_set_hostname(sd_lldp_tx *lldp_tx, const char *hostname); +int sd_lldp_tx_set_pretty_hostname(sd_lldp_tx *lldp_tx, const char *pretty_hostname); +int sd_lldp_tx_set_mud_url(sd_lldp_tx *lldp_tx, const char *mud_url); +int sd_lldp_tx_set_capabilities(sd_lldp_tx *lldp_tx, uint16_t supported, uint16_t enabled); + +_SD_DEFINE_POINTER_CLEANUP_FUNC(sd_lldp_tx, sd_lldp_tx_unref); + +_SD_END_DECLARATIONS; + +#endif |