mirror of
https://github.com/Dasharo/systemd.git
synced 2026-03-06 15:02:31 -08:00
arphrd-util: introduce arphrd_to_hw_addr_len()
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#include <errno.h>
|
||||
#include <netinet/in.h>
|
||||
#include <linux/if_arp.h>
|
||||
#include <linux/if_infiniband.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "arphrd-util.h"
|
||||
@@ -23,3 +25,21 @@ int arphrd_from_name(const char *name) {
|
||||
|
||||
return sc->id;
|
||||
}
|
||||
|
||||
size_t arphrd_to_hw_addr_len(uint16_t arphrd) {
|
||||
switch (arphrd) {
|
||||
case ARPHRD_ETHER:
|
||||
return ETH_ALEN;
|
||||
case ARPHRD_INFINIBAND:
|
||||
return INFINIBAND_ALEN;
|
||||
case ARPHRD_TUNNEL:
|
||||
case ARPHRD_SIT:
|
||||
case ARPHRD_IPGRE:
|
||||
return sizeof(struct in_addr);
|
||||
case ARPHRD_TUNNEL6:
|
||||
case ARPHRD_IP6GRE:
|
||||
return sizeof(struct in6_addr);
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stddef.h>
|
||||
|
||||
const char *arphrd_to_name(int id);
|
||||
int arphrd_from_name(const char *name);
|
||||
|
||||
size_t arphrd_to_hw_addr_len(uint16_t arphrd);
|
||||
|
||||
Reference in New Issue
Block a user