diff options
Diffstat (limited to 'include/net/macsec.h')
| -rw-r--r-- | include/net/macsec.h | 28 | 
1 files changed, 25 insertions, 3 deletions
| diff --git a/include/net/macsec.h b/include/net/macsec.h index d6fa6b97f6ef..5b9c61c4d3a6 100644 --- a/include/net/macsec.h +++ b/include/net/macsec.h @@ -14,12 +14,27 @@  #define MACSEC_DEFAULT_PN_LEN 4  #define MACSEC_XPN_PN_LEN 8 -#define MACSEC_SALT_LEN 12  #define MACSEC_NUM_AN 4 /* 2 bits for the association number */ +#define MACSEC_SCI_LEN 8 +#define MACSEC_PORT_ES (htons(0x0001)) + +#define MACSEC_TCI_VERSION 0x80 +#define MACSEC_TCI_ES      0x40 /* end station */ +#define MACSEC_TCI_SC      0x20 /* SCI present */ +#define MACSEC_TCI_SCB     0x10 /* epon */ +#define MACSEC_TCI_E       0x08 /* encryption */ +#define MACSEC_TCI_C       0x04 /* changed text */ +#define MACSEC_AN_MASK     0x03 /* association number */ +#define MACSEC_TCI_CONFID  (MACSEC_TCI_E | MACSEC_TCI_C) + +#define MACSEC_DEFAULT_ICV_LEN 16 +  typedef u64 __bitwise sci_t;  typedef u32 __bitwise ssci_t; +struct metadata_dst; +  typedef union salt {  	struct {  		u32 ssci; @@ -183,6 +198,7 @@ struct macsec_tx_sa {   * @scb: single copy broadcast flag   * @sa: array of secure associations   * @stats: stats for this TXSC + * @md_dst: MACsec offload metadata dst   */  struct macsec_tx_sc {  	bool active; @@ -193,6 +209,7 @@ struct macsec_tx_sc {  	bool scb;  	struct macsec_tx_sa __rcu *sa[MACSEC_NUM_AN];  	struct pcpu_tx_sc_stats __percpu *stats; +	struct metadata_dst *md_dst;  };  /** @@ -254,8 +271,6 @@ struct macsec_context {  		struct macsec_rx_sa_stats *rx_sa_stats;  		struct macsec_dev_stats  *dev_stats;  	} stats; - -	u8 prepare:1;  };  /** @@ -289,5 +304,12 @@ struct macsec_ops {  };  void macsec_pn_wrapped(struct macsec_secy *secy, struct macsec_tx_sa *tx_sa); +static inline bool macsec_send_sci(const struct macsec_secy *secy) +{ +	const struct macsec_tx_sc *tx_sc = &secy->tx_sc; + +	return tx_sc->send_sci || +		(secy->n_rx_sc > 1 && !tx_sc->end_station && !tx_sc->scb); +}  #endif /* _NET_MACSEC_H_ */ |