diff options
Diffstat (limited to 'include/linux/if_pppox.h')
-rw-r--r-- | include/linux/if_pppox.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h index 27741e05446f..03749f41131f 100644 --- a/include/linux/if_pppox.h +++ b/include/linux/if_pppox.h @@ -27,6 +27,8 @@ #include <linux/ppp_channel.h> #endif /* __KERNEL__ */ #include <linux/if_pppol2tp.h> +#include <linux/if_pppolac.h> +#include <linux/if_pppopns.h> /* For user-space programs to pick up these definitions * which they wouldn't get otherwise without defining __KERNEL__ @@ -51,7 +53,9 @@ struct pppoe_addr{ */ #define PX_PROTO_OE 0 /* Currently just PPPoE */ #define PX_PROTO_OL2TP 1 /* Now L2TP also */ -#define PX_MAX_PROTO 2 +#define PX_PROTO_OLAC 2 +#define PX_PROTO_OPNS 3 +#define PX_MAX_PROTO 4 struct sockaddr_pppox { sa_family_t sa_family; /* address family, AF_PPPOX */ @@ -150,6 +154,22 @@ struct pppoe_opt { relayed to (PPPoE relaying) */ }; +struct pppolac_opt { + __u32 local; + __u32 remote; + __u16 sequence; + __u8 sequencing; + int (*backlog_rcv)(struct sock *sk_udp, struct sk_buff *skb); +}; + +struct pppopns_opt { + __u16 local; + __u16 remote; + __u32 sequence; + void (*data_ready)(struct sock *sk_raw, int length); + int (*backlog_rcv)(struct sock *sk_raw, struct sk_buff *skb); +}; + #include <net/sock.h> struct pppox_sock { @@ -159,6 +179,8 @@ struct pppox_sock { struct pppox_sock *next; /* for hash table */ union { struct pppoe_opt pppoe; + struct pppolac_opt lac; + struct pppopns_opt pns; } proto; __be16 num; }; |