mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-27 21:00:10 +01:00
The function introduced queries the FDB table via netlink socket. It accepts a list of ifindexes to filter out the FDB content not related to it. It returns an array of MAC addresses. To cltarify this function is unusually exposed directly on nm-linux-platform.h as we don't want this be part of the whole NMPlatform object or cache. This, is an exception to the rule to simplify the integration of this functionality on NetworkManager. In addition, it also doesn't use the async mechanism that is widely used on netlink communication across nm-linux-platform. Again, the reason is to simplify its use, as async communication won't provide a benefit to the use cases we have planned for this, i.e balance-slb RARP announcing. (cherry picked from commit00f47efcb2) (cherry picked from commit8af7493627)
36 lines
1.5 KiB
C
36 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Copyright (C) 2012 Red Hat, Inc.
|
|
*/
|
|
|
|
#ifndef __NETWORKMANAGER_LINUX_PLATFORM_H__
|
|
#define __NETWORKMANAGER_LINUX_PLATFORM_H__
|
|
|
|
#include "nm-platform.h"
|
|
|
|
#define NM_TYPE_LINUX_PLATFORM (nm_linux_platform_get_type())
|
|
#define NM_LINUX_PLATFORM(obj) \
|
|
(_NM_G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_LINUX_PLATFORM, NMLinuxPlatform))
|
|
#define NM_LINUX_PLATFORM_CLASS(klass) \
|
|
(G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_LINUX_PLATFORM, NMLinuxPlatformClass))
|
|
#define NM_IS_LINUX_PLATFORM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_LINUX_PLATFORM))
|
|
#define NM_IS_LINUX_PLATFORM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_LINUX_PLATFORM))
|
|
#define NM_LINUX_PLATFORM_GET_CLASS(obj) \
|
|
(G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_LINUX_PLATFORM, NMLinuxPlatformClass))
|
|
|
|
typedef struct _NMLinuxPlatform NMLinuxPlatform;
|
|
typedef struct _NMLinuxPlatformClass NMLinuxPlatformClass;
|
|
|
|
GType nm_linux_platform_get_type(void);
|
|
|
|
struct _NMDedupMultiIndex;
|
|
|
|
NMEtherAddr **
|
|
nm_linux_platform_get_link_fdb_table(NMPlatform *platform, int *ifindexes, guint ifindexes_len);
|
|
|
|
NMPlatform *nm_linux_platform_new(struct _NMDedupMultiIndex *multi_idx,
|
|
gboolean log_with_ptr,
|
|
gboolean netns_support,
|
|
gboolean cache_tc);
|
|
|
|
#endif /* __NETWORKMANAGER_LINUX_PLATFORM_H__ */
|