patch-2.2.18 linux/drivers/net/xpds/xpds-encap-fr.h
Next file: linux/drivers/net/xpds/xpds-fsm.c
Previous file: linux/drivers/net/xpds/xpds-encap-fr.c
Back to the patch index
Back to the overall index
- Lines: 106
- Date:
Sun Oct 15 21:57:15 2000
- Orig file:
v2.2.17/drivers/net/xpds/xpds-encap-fr.h
- Orig date:
Thu Jan 1 01:00:00 1970
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/drivers/net/xpds/xpds-encap-fr.h linux/drivers/net/xpds/xpds-encap-fr.h
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2000, Xpeed, Inc.
+ * fr.h $Revision: 1.10 $
+ * License to copy and distribute is GNU General Public License, version 2.
+ * Some code adapted from Mike McLagen's /usr/include/linux/if_frad.h in
+ * Linux kernels 2.0-2.2.
+ */
+
+#ifndef XPDS_ENCAP_FR_H
+#define XPDS_ENCAP_FR_H
+
+#include <linux/config.h>
+#include <linux/if.h>
+#include <asm/types.h>
+#include "xpds-softnet.h"
+
+#ifndef CONFIG_DLCI_MAX
+#define CONFIG_DLCI_MODULE 1
+#define CONFIG_DLCI_MAX 8
+#define CONFIG_DLCI_COUNT 24
+#endif
+
+#define FRAD_STATION_CPE 0x0000
+#define FRAD_STATION_NODE 0x0001
+
+#define FRAD_TX_IGNORE_CIR 0x0001
+#define FRAD_RX_ACCOUNT_CIR 0x0002
+#define FRAD_DROP_ABORTED 0x0004
+#define FRAD_BUFFERIF 0x0008
+#define FRAD_STATS 0x0010
+#define FRAD_MCI 0x0100
+#define FRAD_AUTODLCI 0x8000
+#define FRAD_VALID_FLAGS 0x811F
+
+#define FRAD_CLOCK_INT 0x0001
+#define FRAD_CLOCK_EXT 0x0000
+
+/* these are the fields of an RFC 1490 header */
+struct frhdr {
+ u8 addr_control[2] __attribute__ ((packed));
+ u8 control __attribute__ ((packed));
+
+ /* for IP packets, this can be the NLPID */
+ u8 pad __attribute__ ((packed));
+
+ u8 NLPID __attribute__ ((packed));
+ u8 OUI[3] __attribute__ ((packed));
+ u16 PID __attribute__ ((packed));
+
+#define IP_NLPID pad
+} __attribute__ ((packed));
+
+/* see RFC 1490 for the definition of the following */
+#define FRAD_I_UI 0x03
+
+#define FRAD_P_PADDING 0x00
+#define FRAD_P_Q933 0x08
+#define FRAD_P_SNAP 0x80
+#define FRAD_P_CLNP 0x81
+#define FRAD_P_IP 0xCC
+
+#define FRAD_OUI_BRIDGED_0 0x00
+#define FRAD_OUI_BRIDGED_1 0x80
+#define FRAD_OUI_BRIDGED_2 0xc2
+
+#define FRAD_PID 0x0007
+
+struct frad_local {
+ short dlci[CONFIG_DLCI_MAX];
+
+ /* fields for LMI messages */
+ int liv_send_sequence;
+ int liv_receive_sequence;
+ int remote_liv_send_sequence;
+ int remote_liv_receive_sequence;
+ int new_liv_send_sequence;
+ int pvc_active[CONFIG_DLCI_MAX];
+ int pvc_new[CONFIG_DLCI_MAX];
+ int no_initiate_lmi;
+ int message_number;
+
+};
+
+extern void xpds_dlci_receive(struct sk_buff *skb, struct net_device *dev);
+extern int xpds_dlci_transmit(struct sk_buff *skb, struct net_device *dev);
+
+#define XPDS_DEFAULT_DLCI 16
+#define XPDS_DEFAULT_DLCI_CR 0 /* 0 or 2 are the possible values */
+
+#define XPDS_DLCI_LMI_LT_OR_NT (-1)
+#define XPDS_DLCI_LMI_NONE 0
+#define XPDS_DLCI_LMI_LT 1
+#define XPDS_DLCI_LMI_NT 2
+#define XPDS_DLCI_LMI_NT_BIDIRECTIONAL 3
+
+typedef struct dlci_lmi_timer_data_t {
+ struct net_device *dev;
+ int dlci_num;
+} dlci_lmi_timer_data_t;
+
+void xpds_dlci_install_lmi_timer (int i, struct net_device *dev);
+void xpds_dlci_remove_lmi_timer (int i, struct net_device *dev);
+
+
+#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)