Add support for AR9280 from FreeBSD HAL
[madwifi/.git] / net80211 / ieee80211_crypto.h
index 637a7a7473e40a456dcb8b28c5dd63355a50e13e..c005b3ede1a705c1f592c16860aafdd71449f2cd 100644 (file)
@@ -80,6 +80,7 @@ struct ieee80211_key {
 #define        IEEE80211_KEY_GROUP     0x04    /* key used for WPA group operation */
 #define        IEEE80211_KEY_SWCRYPT   0x10    /* host-based encrypt/decrypt */
 #define        IEEE80211_KEY_SWMIC     0x20    /* host-based enmic/demic */
+#define        IEEE80211_KEY_TXRX      (IEEE80211_KEY_XMIT | IEEE80211_KEY_RECV)
        ieee80211_keyix_t wk_keyix;     /* key index */
        u_int8_t wk_key[IEEE80211_KEYBUF_SIZE+IEEE80211_MICBUF_SIZE];
 #define        wk_txmic        wk_key+IEEE80211_KEYBUF_SIZE+0  /* XXX can't () right */
@@ -145,13 +146,13 @@ struct ieee80211_cipher {
        int (*ic_encap)(struct ieee80211_key *, struct sk_buff *, u_int8_t);
        int (*ic_decap)(struct ieee80211_key *, struct sk_buff *, int);
        int (*ic_enmic)(struct ieee80211_key *, struct sk_buff *, int);
-       int (*ic_demic)(struct ieee80211_key *, struct sk_buff *, int);
+       int (*ic_demic)(struct ieee80211_key *, struct sk_buff *, int, int);
 };
 extern const struct ieee80211_cipher ieee80211_cipher_none;
 
 void ieee80211_crypto_register(const struct ieee80211_cipher *);
 void ieee80211_crypto_unregister(const struct ieee80211_cipher *);
-int ieee80211_crypto_available(struct ieee80211vap*, u_int);
+int ieee80211_crypto_available(struct ieee80211vap *, u_int);
 
 struct ieee80211_key *ieee80211_crypto_encap(struct ieee80211_node *,
        struct sk_buff *);
@@ -163,10 +164,10 @@ struct ieee80211_key *ieee80211_crypto_decap(struct ieee80211_node *,
  */
 static __inline int
 ieee80211_crypto_demic(struct ieee80211vap *vap, struct ieee80211_key *k,
-       struct sk_buff *skb, int hdrlen)
+       struct sk_buff *skb, int hdrlen, int force_sw)
 {
        const struct ieee80211_cipher *cip = k->wk_cipher;
-       return (cip->ic_miclen > 0 ? cip->ic_demic(k, skb, hdrlen) : 1);
+       return (cip->ic_miclen > 0 ? cip->ic_demic(k, skb, hdrlen, force_sw) : 1);
 }
 
 /*
@@ -174,10 +175,10 @@ ieee80211_crypto_demic(struct ieee80211vap *vap, struct ieee80211_key *k,
  */
 static __inline int
 ieee80211_crypto_enmic(struct ieee80211vap *vap, struct ieee80211_key *k,
-       struct sk_buff *skb, int force)
+       struct sk_buff *skb, int force_sw)
 {
        const struct ieee80211_cipher *cip = k->wk_cipher;
-       return (cip->ic_miclen > 0 ? cip->ic_enmic(k, skb, force) : 1);
+       return (cip->ic_miclen > 0 ? cip->ic_enmic(k, skb, force_sw) : 1);
 }
 
 /*