summaryrefslogtreecommitdiffstats
path: root/include/linux/wimax/i2400m.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/wimax/i2400m.h')
-rw-r--r--include/linux/wimax/i2400m.h32
1 files changed, 28 insertions, 4 deletions
diff --git a/include/linux/wimax/i2400m.h b/include/linux/wimax/i2400m.h
index ad36e073a70..d5148a7889a 100644
--- a/include/linux/wimax/i2400m.h
+++ b/include/linux/wimax/i2400m.h
@@ -225,15 +225,16 @@ struct i2400m_pl_data_hdr {
/*
* Payload for an extended data packet
*
- * New in v1.4
+ * New in fw v1.4
*
+ * @reorder: if this payload has to be reorder or not (and how)
* @cs: the type of data in the packet, as defined per (802.16e
* T11.13.19.1). Currently only 2 (IPv4 packet) supported.
*
* This is prefixed to each and every INCOMING DATA packet.
*/
struct i2400m_pl_edata_hdr {
- __le32 reorder;
+ __le32 reorder; /* bits defined in i2400m_ro */
__u8 cs;
__u8 reserved[11];
} __attribute__((packed));
@@ -243,8 +244,23 @@ enum i2400m_cs {
I2400M_CS_IPV4 = 2,
};
-enum i2400m_reorder {
- I2400M_REORDER_NEEDED = 0x01,
+enum i2400m_ro {
+ I2400M_RO_NEEDED = 0x01,
+ I2400M_RO_TYPE = 0x03,
+ I2400M_RO_TYPE_SHIFT = 1,
+ I2400M_RO_CIN = 0x0f,
+ I2400M_RO_CIN_SHIFT = 4,
+ I2400M_RO_FBN = 0x07ff,
+ I2400M_RO_FBN_SHIFT = 8,
+ I2400M_RO_SN = 0x07ff,
+ I2400M_RO_SN_SHIFT = 21,
+};
+
+enum i2400m_ro_type {
+ I2400M_RO_TYPE_RESET = 0,
+ I2400M_RO_TYPE_PACKET,
+ I2400M_RO_TYPE_WS,
+ I2400M_RO_TYPE_PACKET_WS,
};
@@ -410,6 +426,7 @@ enum i2400m_tlv {
I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601,
I2400M_TLV_CONFIG_IDLE_TIMEOUT = 611,
I2400M_TLV_CONFIG_D2H_DATA_FORMAT = 614,
+ I2400M_TLV_CONFIG_DL_HOST_REORDER = 615,
};
@@ -553,5 +570,12 @@ struct i2400m_tlv_config_d2h_data_format {
__u8 reserved[3];
} __attribute__((packed));
+/* New in v1.4 */
+struct i2400m_tlv_config_dl_host_reorder {
+ struct i2400m_tlv_hdr hdr;
+ __u8 reorder; /* 0 disabled, 1 enabled */
+ __u8 reserved[3];
+} __attribute__((packed));
+
#endif /* #ifndef __LINUX__WIMAX__I2400M_H__ */