mirror of
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git
synced 2024-11-27 11:54:53 +08:00
5a56804ce1
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>
53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
/* 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);
|
|
}
|