diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2008-08-04 10:38:02 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-08-22 16:29:58 -0400 |
commit | 61e754f44b57060464b1fcf261a8428ecfa23bed (patch) | |
tree | 0fab4e6777f4ad317dac446d0afb24efb9257636 /drivers/net/wireless/rt2x00/rt61pci.h | |
parent | 2bb057d07a0bc17475a7bf897fc41667ab08b73f (diff) |
rt2x00: Implement HW encryption (rt61pci)
rt61pci supports hardware encryption.
rt61pci supports up to 4 shared keys and up to 64 pairwise keys.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt61pci.h')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt61pci.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/drivers/net/wireless/rt2x00/rt61pci.h b/drivers/net/wireless/rt2x00/rt61pci.h index 1004d5b899e6..6d591cef3e5d 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.h +++ b/drivers/net/wireless/rt2x00/rt61pci.h | |||
@@ -134,6 +134,16 @@ | |||
134 | #define PAIRWISE_KEY_TABLE_BASE 0x1200 | 134 | #define PAIRWISE_KEY_TABLE_BASE 0x1200 |
135 | #define PAIRWISE_TA_TABLE_BASE 0x1a00 | 135 | #define PAIRWISE_TA_TABLE_BASE 0x1a00 |
136 | 136 | ||
137 | #define SHARED_KEY_ENTRY(__idx) \ | ||
138 | ( SHARED_KEY_TABLE_BASE + \ | ||
139 | ((__idx) * sizeof(struct hw_key_entry)) ) | ||
140 | #define PAIRWISE_KEY_ENTRY(__idx) \ | ||
141 | ( PAIRWISE_KEY_TABLE_BASE + \ | ||
142 | ((__idx) * sizeof(struct hw_key_entry)) ) | ||
143 | #define PAIRWISE_TA_ENTRY(__idx) \ | ||
144 | ( PAIRWISE_TA_TABLE_BASE + \ | ||
145 | ((__idx) * sizeof(struct hw_pairwise_ta_entry)) ) | ||
146 | |||
137 | struct hw_key_entry { | 147 | struct hw_key_entry { |
138 | u8 key[16]; | 148 | u8 key[16]; |
139 | u8 tx_mic[8]; | 149 | u8 tx_mic[8]; |
@@ -142,7 +152,8 @@ struct hw_key_entry { | |||
142 | 152 | ||
143 | struct hw_pairwise_ta_entry { | 153 | struct hw_pairwise_ta_entry { |
144 | u8 address[6]; | 154 | u8 address[6]; |
145 | u8 reserved[2]; | 155 | u8 cipher; |
156 | u8 reserved; | ||
146 | } __attribute__ ((packed)); | 157 | } __attribute__ ((packed)); |
147 | 158 | ||
148 | /* | 159 | /* |
@@ -662,6 +673,10 @@ struct hw_pairwise_ta_entry { | |||
662 | * SEC_CSR4: Pairwise key table lookup control. | 673 | * SEC_CSR4: Pairwise key table lookup control. |
663 | */ | 674 | */ |
664 | #define SEC_CSR4 0x30b0 | 675 | #define SEC_CSR4 0x30b0 |
676 | #define SEC_CSR4_ENABLE_BSS0 FIELD32(0x00000001) | ||
677 | #define SEC_CSR4_ENABLE_BSS1 FIELD32(0x00000002) | ||
678 | #define SEC_CSR4_ENABLE_BSS2 FIELD32(0x00000004) | ||
679 | #define SEC_CSR4_ENABLE_BSS3 FIELD32(0x00000008) | ||
665 | 680 | ||
666 | /* | 681 | /* |
667 | * SEC_CSR5: shared key table security mode register. | 682 | * SEC_CSR5: shared key table security mode register. |
@@ -1428,8 +1443,10 @@ struct hw_pairwise_ta_entry { | |||
1428 | 1443 | ||
1429 | /* | 1444 | /* |
1430 | * Word4 | 1445 | * Word4 |
1446 | * ICV: Received ICV of originally encrypted. | ||
1447 | * NOTE: This is a guess, the official definition is "reserved" | ||
1431 | */ | 1448 | */ |
1432 | #define RXD_W4_RESERVED FIELD32(0xffffffff) | 1449 | #define RXD_W4_ICV FIELD32(0xffffffff) |
1433 | 1450 | ||
1434 | /* | 1451 | /* |
1435 | * the above 20-byte is called RXINFO and will be DMAed to MAC RX block | 1452 | * the above 20-byte is called RXINFO and will be DMAed to MAC RX block |