mirror of
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git
synced 2026-01-26 14:13:24 +00:00
lib: Introduce ppp protocols
PPP protocol field uses different values than ethertype. Introduce utilities for translating PPP protocols from strings to values and vice versa. Use generic API from utils in order to get proto id and name. Signed-off-by: Wojciech Drewek <wojciech.drewek@intel.com> Acked-by: Guillaume Nault <gnault@redhat.com> Signed-off-by: David Ahern <dsahern@kernel.org>
This commit is contained in:
parent
653c7517fd
commit
5a56804ce1
@ -31,6 +31,9 @@ int ll_addr_a2n(char *lladdr, int len, const char *arg);
|
||||
const char * ll_proto_n2a(unsigned short id, char *buf, int len);
|
||||
int ll_proto_a2n(unsigned short *id, const char *buf);
|
||||
|
||||
const char *ppp_proto_n2a(unsigned short id, char *buf, int len);
|
||||
int ppp_proto_a2n(unsigned short *id, const char *buf);
|
||||
|
||||
const char *nl_proto_n2a(int id, char *buf, int len);
|
||||
int nl_proto_a2n(__u32 *id, const char *arg);
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ CFLAGS += -fPIC
|
||||
|
||||
UTILOBJ = utils.o utils_math.o rt_names.o ll_map.o ll_types.o ll_proto.o ll_addr.o \
|
||||
inet_proto.o namespace.o json_writer.o json_print.o json_print_math.o \
|
||||
names.o color.o bpf_legacy.o bpf_glue.o exec.o fs.o cg_map.o
|
||||
names.o color.o bpf_legacy.o bpf_glue.o exec.o fs.o cg_map.o ppp_proto.o
|
||||
|
||||
ifeq ($(HAVE_ELF),y)
|
||||
ifeq ($(HAVE_LIBBPF),y)
|
||||
|
||||
52
lib/ppp_proto.c
Normal file
52
lib/ppp_proto.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Utilities for translating PPP protocols from strings
|
||||
* and vice versa.
|
||||
*
|
||||
* Authors: Wojciech Drewek <wojciech.drewek@intel.com>
|
||||
*/
|
||||
|
||||
#include <linux/ppp_defs.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include "utils.h"
|
||||
#include "rt_names.h"
|
||||
|
||||
static const struct proto ppp_proto_names[] = {
|
||||
{PPP_IP, "ip"},
|
||||
{PPP_AT, "at"},
|
||||
{PPP_IPX, "ipx"},
|
||||
{PPP_VJC_COMP, "vjc_comp"},
|
||||
{PPP_VJC_UNCOMP, "vjc_uncomp"},
|
||||
{PPP_MP, "mp"},
|
||||
{PPP_IPV6, "ipv6"},
|
||||
{PPP_COMPFRAG, "compfrag"},
|
||||
{PPP_COMP, "comp"},
|
||||
{PPP_MPLS_UC, "mpls_uc"},
|
||||
{PPP_MPLS_MC, "mpls_mc"},
|
||||
{PPP_IPCP, "ipcp"},
|
||||
{PPP_ATCP, "atcp"},
|
||||
{PPP_IPXCP, "ipxcp"},
|
||||
{PPP_IPV6CP, "ipv6cp"},
|
||||
{PPP_CCPFRAG, "ccpfrag"},
|
||||
{PPP_CCP, "ccp"},
|
||||
{PPP_MPLSCP, "mplscp"},
|
||||
{PPP_LCP, "lcp"},
|
||||
{PPP_PAP, "pap"},
|
||||
{PPP_LQR, "lqr"},
|
||||
{PPP_CHAP, "chap"},
|
||||
{PPP_CBCP, "cbcp"},
|
||||
};
|
||||
|
||||
const char *ppp_proto_n2a(unsigned short id, char *buf, int len)
|
||||
{
|
||||
size_t len_tb = ARRAY_SIZE(ppp_proto_names);
|
||||
|
||||
return proto_n2a(id, buf, len, ppp_proto_names, len_tb);
|
||||
}
|
||||
|
||||
int ppp_proto_a2n(unsigned short *id, const char *buf)
|
||||
{
|
||||
size_t len_tb = ARRAY_SIZE(ppp_proto_names);
|
||||
|
||||
return proto_a2n(id, buf, ppp_proto_names, len_tb);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user