diff options
Diffstat (limited to 'include/linux/wimax')
-rw-r--r-- | include/linux/wimax/i2400m.h | 32 |
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 { | |||
225 | /* | 225 | /* |
226 | * Payload for an extended data packet | 226 | * Payload for an extended data packet |
227 | * | 227 | * |
228 | * New in v1.4 | 228 | * New in fw v1.4 |
229 | * | 229 | * |
230 | * @reorder: if this payload has to be reorder or not (and how) | ||
230 | * @cs: the type of data in the packet, as defined per (802.16e | 231 | * @cs: the type of data in the packet, as defined per (802.16e |
231 | * T11.13.19.1). Currently only 2 (IPv4 packet) supported. | 232 | * T11.13.19.1). Currently only 2 (IPv4 packet) supported. |
232 | * | 233 | * |
233 | * This is prefixed to each and every INCOMING DATA packet. | 234 | * This is prefixed to each and every INCOMING DATA packet. |
234 | */ | 235 | */ |
235 | struct i2400m_pl_edata_hdr { | 236 | struct i2400m_pl_edata_hdr { |
236 | __le32 reorder; | 237 | __le32 reorder; /* bits defined in i2400m_ro */ |
237 | __u8 cs; | 238 | __u8 cs; |
238 | __u8 reserved[11]; | 239 | __u8 reserved[11]; |
239 | } __attribute__((packed)); | 240 | } __attribute__((packed)); |
@@ -243,8 +244,23 @@ enum i2400m_cs { | |||
243 | I2400M_CS_IPV4 = 2, | 244 | I2400M_CS_IPV4 = 2, |
244 | }; | 245 | }; |
245 | 246 | ||
246 | enum i2400m_reorder { | 247 | enum i2400m_ro { |
247 | I2400M_REORDER_NEEDED = 0x01, | 248 | I2400M_RO_NEEDED = 0x01, |
249 | I2400M_RO_TYPE = 0x03, | ||
250 | I2400M_RO_TYPE_SHIFT = 1, | ||
251 | I2400M_RO_CIN = 0x0f, | ||
252 | I2400M_RO_CIN_SHIFT = 4, | ||
253 | I2400M_RO_FBN = 0x07ff, | ||
254 | I2400M_RO_FBN_SHIFT = 8, | ||
255 | I2400M_RO_SN = 0x07ff, | ||
256 | I2400M_RO_SN_SHIFT = 21, | ||
257 | }; | ||
258 | |||
259 | enum i2400m_ro_type { | ||
260 | I2400M_RO_TYPE_RESET = 0, | ||
261 | I2400M_RO_TYPE_PACKET, | ||
262 | I2400M_RO_TYPE_WS, | ||
263 | I2400M_RO_TYPE_PACKET_WS, | ||
248 | }; | 264 | }; |
249 | 265 | ||
250 | 266 | ||
@@ -410,6 +426,7 @@ enum i2400m_tlv { | |||
410 | I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601, | 426 | I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601, |
411 | I2400M_TLV_CONFIG_IDLE_TIMEOUT = 611, | 427 | I2400M_TLV_CONFIG_IDLE_TIMEOUT = 611, |
412 | I2400M_TLV_CONFIG_D2H_DATA_FORMAT = 614, | 428 | I2400M_TLV_CONFIG_D2H_DATA_FORMAT = 614, |
429 | I2400M_TLV_CONFIG_DL_HOST_REORDER = 615, | ||
413 | }; | 430 | }; |
414 | 431 | ||
415 | 432 | ||
@@ -553,5 +570,12 @@ struct i2400m_tlv_config_d2h_data_format { | |||
553 | __u8 reserved[3]; | 570 | __u8 reserved[3]; |
554 | } __attribute__((packed)); | 571 | } __attribute__((packed)); |
555 | 572 | ||
573 | /* New in v1.4 */ | ||
574 | struct i2400m_tlv_config_dl_host_reorder { | ||
575 | struct i2400m_tlv_hdr hdr; | ||
576 | __u8 reorder; /* 0 disabled, 1 enabled */ | ||
577 | __u8 reserved[3]; | ||
578 | } __attribute__((packed)); | ||
579 | |||
556 | 580 | ||
557 | #endif /* #ifndef __LINUX__WIMAX__I2400M_H__ */ | 581 | #endif /* #ifndef __LINUX__WIMAX__I2400M_H__ */ |