summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
authorharti <harti@FreeBSD.org>2003-06-16 13:52:27 +0000
committerharti <harti@FreeBSD.org>2003-06-16 13:52:27 +0000
commitf4505647504001914b55749257f2c7270c8bfbf7 (patch)
tree88e5017700692022c56746a065a1960888f40d41 /sys/net
parent1c3c8e4e6065e8a5777c750fc994527bf696ecc3 (diff)
downloadFreeBSD-src-f4505647504001914b55749257f2c7270c8bfbf7.zip
FreeBSD-src-f4505647504001914b55749257f2c7270c8bfbf7.tar.gz
Fix the breakage introduced by rev. 1.43 of sys/dev/midway.c (don't commit
on friday 13th and without making a universe). This adds struct and constant definitions for ATM traffic parameters and re-enables the build of the midway driver. Tested by: make universe
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/if_atm.h109
1 files changed, 92 insertions, 17 deletions
diff --git a/sys/net/if_atm.h b/sys/net/if_atm.h
index 98f3b3b..fee0185 100644
--- a/sys/net/if_atm.h
+++ b/sys/net/if_atm.h
@@ -46,15 +46,23 @@
#define ATM_DEVICE_HE622 3 /* Fore/Marconi HE622 */
#define ATM_DEVICE_ENI155P 4 /* Efficient networks 155p */
#define ATM_DEVICE_ADP155P 5 /* Adaptec 155p */
+#define ATM_DEVICE_FORELE25 6 /* ForeRunnerLE 25 */
+#define ATM_DEVICE_FORELE155 7 /* ForeRunnerLE 155 */
+#define ATM_DEVICE_NICSTAR25 8 /* other 77211 25.6MBit */
+#define ATM_DEVICE_NICSTAR155 9 /* other 77211 155MBit */
/* map to strings and vendors */
-#define ATM_DEVICE_NAMES \
- { "Unknown", "Unknown" }, \
- { "PCA200-E", "Fore/Marconi" }, \
- { "HE155", "Fore/Marconi" }, \
- { "HE622", "Fore/Marconi" }, \
- { "ENI155p", "Efficient Networks" }, \
- { "ADP155p", "Adaptec" },
+#define ATM_DEVICE_NAMES \
+ { "Unknown", "Unknown" }, \
+ { "PCA200-E", "Fore/Marconi" }, \
+ { "HE155", "Fore/Marconi" }, \
+ { "HE622", "Fore/Marconi" }, \
+ { "ENI155p", "Efficient Networks" }, \
+ { "ADP155p", "Adaptec" }, \
+ { "ForeRunnerLE25", "Fore/Marconi" }, \
+ { "ForeRunnerLE155", "Fore/Marconi" }, \
+ { "IDT77211/25", "IDT" }, \
+ { "IDT77211/155", "IDT" },
/*
* This is the common link layer MIB for all ATM interfaces. Much of the
@@ -76,26 +84,91 @@ struct ifatm_mib {
uint32_t max_vccs; /* maximum number of VCCs */
};
-#ifdef _KERNEL
/*
- * Common fields for all ATM interfaces. Each driver's softc must start with
- * this structure.
+ * Traffic parameters for ATM connections. This contains all parameters
+ * to accomodate UBR, UBR+MCR, CBR, VBR and ABR connections.
+ *
+ * Keep in sync with ng_atm.h
*/
-struct ifatm {
- struct ifnet ifnet; /* required by if_var.h */
- struct ifatm_mib mib; /* exported data */
- void *phy; /* usually SUNI */
- void *ngpriv; /* netgraph link */
+struct atmio_tparam {
+ uint32_t pcr; /* 24bit: Peak Cell Rate */
+ uint32_t scr; /* 24bit: VBR Sustainable Cell Rate */
+ uint32_t mbs; /* 24bit: VBR Maximum burst size */
+ uint32_t mcr; /* 24bit: ABR/VBR/UBR+MCR MCR */
+ uint32_t icr; /* 24bit: ABR ICR */
+ uint32_t tbe; /* 24bit: ABR TBE (1...2^24-1) */
+ uint8_t nrm; /* 3bit: ABR Nrm */
+ uint8_t trm; /* 3bit: ABR Trm */
+ uint16_t adtf; /* 10bit: ABR ADTF */
+ uint8_t rif; /* 4bit: ABR RIF */
+ uint8_t rdf; /* 4bit: ABR RDF */
+ uint8_t cdf; /* 3bit: ABR CDF */
+};
+
+/*
+ * VCC parameters
+ *
+ * Keep in sync with ng_atm.h
+ */
+struct atmio_vcc {
+ uint16_t flags; /* VCC flags */
+ uint16_t vpi;
+ uint16_t vci;
+ uint16_t rmtu; /* maximum receive PDU */
+ uint16_t tmtu; /* maximum transmit PDU */
+ uint8_t aal; /* aal type */
+ uint8_t traffic; /* traffic type */
+ struct atmio_tparam tparam; /* traffic parameters */
+};
+
+/* VCC flags */
+#define ATMIO_FLAG_LLCSNAP 0x0002 /* same as ATM_PH_LLCSNAP */
+#define ATMIO_FLAG_NG 0x0010 /* owned by netgraph */
+#define ATMIO_FLAG_HARP 0x0020 /* owned by HARP */
+#define ATMIO_FLAG_NORX 0x0100 /* not receiving on this VCC */
+#define ATMIO_FLAG_NOTX 0x0200 /* not transmitting on this VCC */
+#define ATMIO_FLAG_PVC 0x0400 /* this is a PVC */
+#define ATMIO_FLAGS "\020\2LLCSNAP\5NG\6HARP\11NORX\12NOTX\13PVC"
+
+#define ATMIO_AAL_0 0 /* pure cells */
+#define ATMIO_AAL_34 4 /* AAL3 and 4 */
+#define ATMIO_AAL_5 5 /* AAL5 */
+#define ATMIO_AAL_RAW 10 /* whatever the card does */
+
+#define ATMIO_TRAFFIC_UBR 0
+#define ATMIO_TRAFFIC_CBR 1
+#define ATMIO_TRAFFIC_ABR 2
+#define ATMIO_TRAFFIC_VBR 3
+
+/*
+ * VCC table
+ *
+ * Keep in sync with ng_atm.h
+ */
+struct atmio_vcctable {
+ uint32_t count; /* number of vccs */
+ struct atmio_vcc vccs[0]; /* array of VCCs */
};
-#endif
/*
* Peak cell rates for various physical media. Note, that there are
* different opinions on what the correct values are.
*/
+#define ATM_RATE_25_6M 59259
#define ATM_RATE_155M 353208
#define ATM_RATE_622M 1412830
-#define ATM_RATE_24G 5651320
+#define ATM_RATE_2_4G 5651320
+
+/*
+ * Common fields for all ATM interfaces. Each driver's softc must start with
+ * this structure.
+ */
+struct ifatm {
+ struct ifnet ifnet; /* required by if_var.h */
+ struct ifatm_mib mib; /* exported data */
+ void *phy; /* usually SUNI */
+ void *ngpriv; /* netgraph link */
+};
#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__)
#define RTALLOC1(A,B) rtalloc1((A),(B))
@@ -138,7 +211,9 @@ struct atm_pseudoioctl {
};
#define SIOCATMENA _IOWR('a', 123, struct atm_pseudoioctl) /* enable */
#define SIOCATMDIS _IOWR('a', 124, struct atm_pseudoioctl) /* disable */
+#define SIOCATMGETVCCS _IOW('a', 125, struct atmio_vcctable)
+#define SIOCATMGVCCS _IOWR('i', 230, struct ifreq)
/*
* XXX forget all the garbage in if_llc.h and do it the easy way
OpenPOWER on IntegriCloud