linux/include/linux/if_pppox.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/***************************************************************************
 * Linux PPP over X - Generic PPP transport layer sockets
 * Linux PPP over Ethernet (PPPoE) Socket Implementation (RFC 2516) 
 *
 * This file supplies definitions required by the PPP over Ethernet driver
 * (pppox.c).  All version information wrt this file is located in pppox.c
 */
#ifndef __LINUX_IF_PPPOX_H
#define __LINUX_IF_PPPOX_H

#include <linux/if.h>
#include <linux/netdevice.h>
#include <linux/ppp_channel.h>
#include <linux/skbuff.h>
#include <linux/workqueue.h>
#include <uapi/linux/if_pppox.h>

static inline struct pppoe_hdr *pppoe_hdr(const struct sk_buff *skb)
{}

struct pppoe_opt {};

struct pptp_opt {};
#include <net/sock.h>

struct pppox_sock {};
#define pppoe_dev
#define pppoe_ifindex
#define pppoe_pa
#define pppoe_relay

static inline struct pppox_sock *pppox_sk(struct sock *sk)
{}

static inline struct sock *sk_pppox(struct pppox_sock *po)
{}

struct module;

struct pppox_proto {};

extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp);
extern void unregister_pppox_proto(int proto_num);
extern void pppox_unbind_sock(struct sock *sk);/* delete ppp-channel binding */
extern int pppox_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
extern int pppox_compat_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);

#define PPPOEIOCSFWD32

/* PPPoX socket states */
enum {};

#endif /* !(__LINUX_IF_PPPOX_H) */