diff options
| author | Michael Biebl <biebl@debian.org> | 2025-11-17 17:43:34 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2025-11-17 17:43:34 +0100 |
| commit | 01609e485803fa250413385ae209660fb7b30a2e (patch) | |
| tree | 0992589c495fcaaea35f4a0452362326a4dbc3ba /src/libnm-platform | |
| parent | bc5f10851bffd6af1c2855635be7a28b6dba3195 (diff) | |
New upstream version 1.54.2 upstream/1.54.2
Diffstat (limited to 'src/libnm-platform')
| -rw-r--r-- | src/libnm-platform/nm-linux-platform.c | 12 | ||||
| -rw-r--r-- | src/libnm-platform/nm-platform.c | 17 | ||||
| -rw-r--r-- | src/libnm-platform/nm-platform.h | 2 |
3 files changed, 27 insertions, 4 deletions
diff --git a/src/libnm-platform/nm-linux-platform.c b/src/libnm-platform/nm-linux-platform.c index d45893fe..0c1097c2 100644 --- a/src/libnm-platform/nm-linux-platform.c +++ b/src/libnm-platform/nm-linux-platform.c @@ -253,7 +253,8 @@ G_STATIC_ASSERT(RTA_MAX == (__RTA_MAX - 1)); #define IFLA_HSR_SEQ_NR 5 #define IFLA_HSR_VERSION 6 #define IFLA_HSR_PROTOCOL 7 -#define __IFLA_HSR_MAX 8 +#define IFLA_HSR_INTERLINK 8 +#define __IFLA_HSR_MAX 9 /*****************************************************************************/ @@ -5196,6 +5197,15 @@ _nl_msg_new_link_set_linkinfo(struct nl_msg *msg, NMLinkType link_type, gconstpo NLA_PUT_U8(msg, IFLA_HSR_MULTICAST_SPEC, props->multicast_spec); NLA_PUT_U8(msg, IFLA_HSR_PROTOCOL, props->prp); + + if (!props->prp && props->protocol_version >= 0) { + NLA_PUT_U8(msg, IFLA_HSR_VERSION, props->protocol_version); + } + + if (props->interlink > 0) { + NLA_PUT_U32(msg, IFLA_HSR_INTERLINK, props->interlink); + } + break; } case NM_LINK_TYPE_SIT: diff --git a/src/libnm-platform/nm-platform.c b/src/libnm-platform/nm-platform.c index fd966d2c..33c763c3 100644 --- a/src/libnm-platform/nm-platform.c +++ b/src/libnm-platform/nm-platform.c @@ -6560,6 +6560,8 @@ nm_platform_lnk_gre_to_string(const NMPlatformLnkGre *lnk, char *buf, gsize len) const char * nm_platform_lnk_hsr_to_string(const NMPlatformLnkHsr *lnk, char *buf, gsize len) { + char interlink_buf[30]; + if (!nm_utils_to_string_buffer_init_null(lnk, &buf, &len)) return buf; @@ -6569,12 +6571,17 @@ nm_platform_lnk_hsr_to_string(const NMPlatformLnkHsr *lnk, char *buf, gsize len) "port1 %d " "port2 %d " "supervision_address " NM_ETHER_ADDR_FORMAT_STR " multicast_spec %u " - "prp %s", + "prp %s " + "protocol_version %d" + "%s", /* interlink */ lnk->port1, lnk->port2, NM_ETHER_ADDR_FORMAT_VAL(&lnk->supervision_address), lnk->multicast_spec, - lnk->prp ? "on" : "off"); + lnk->prp ? "on" : "off", + lnk->protocol_version, + lnk->interlink ? nm_sprintf_buf(interlink_buf, " interlink %d", lnk->interlink) + : ""); return buf; } @@ -8488,7 +8495,9 @@ nm_platform_lnk_hsr_hash_update(const NMPlatformLnkHsr *obj, NMHashState *h) obj->port2, obj->supervision_address, obj->multicast_spec, - NM_HASH_COMBINE_BOOLS(guint8, obj->prp)); + NM_HASH_COMBINE_BOOLS(guint8, obj->prp), + obj->protocol_version, + obj->interlink); } int @@ -8500,6 +8509,8 @@ nm_platform_lnk_hsr_cmp(const NMPlatformLnkHsr *a, const NMPlatformLnkHsr *b) NM_CMP_FIELD_MEMCMP(a, b, supervision_address); NM_CMP_FIELD(a, b, multicast_spec); NM_CMP_FIELD_BOOL(a, b, prp); + NM_CMP_FIELD(a, b, protocol_version); + NM_CMP_FIELD(a, b, interlink); return 0; } diff --git a/src/libnm-platform/nm-platform.h b/src/libnm-platform/nm-platform.h index e4ccb9b1..a63f40c7 100644 --- a/src/libnm-platform/nm-platform.h +++ b/src/libnm-platform/nm-platform.h @@ -845,7 +845,9 @@ typedef struct { typedef struct { int port1; int port2; + int interlink; NMEtherAddr supervision_address; + gint8 protocol_version; guint8 multicast_spec; bool prp : 1; } _nm_alignas(NMPlatformObject) NMPlatformLnkHsr; |