@@ -1405,9 +1405,10 @@ static sci_t nla_get_sci(const struct nlattr *nla)
14051405 return (__force sci_t )nla_get_u64 (nla );
14061406}
14071407
1408- static int nla_put_sci (struct sk_buff * skb , int attrtype , sci_t value )
1408+ static int nla_put_sci (struct sk_buff * skb , int attrtype , sci_t value ,
1409+ int padattr )
14091410{
1410- return nla_put_u64 (skb , attrtype , (__force u64 )value );
1411+ return nla_put_u64_64bit (skb , attrtype , (__force u64 )value , padattr );
14111412}
14121413
14131414static struct macsec_tx_sa * get_txsa_from_nl (struct net * net ,
@@ -2131,16 +2132,36 @@ static int copy_rx_sc_stats(struct sk_buff *skb,
21312132 sum .InPktsUnusedSA += tmp .InPktsUnusedSA ;
21322133 }
21332134
2134- if (nla_put_u64 (skb , MACSEC_RXSC_STATS_ATTR_IN_OCTETS_VALIDATED , sum .InOctetsValidated ) ||
2135- nla_put_u64 (skb , MACSEC_RXSC_STATS_ATTR_IN_OCTETS_DECRYPTED , sum .InOctetsDecrypted ) ||
2136- nla_put_u64 (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_UNCHECKED , sum .InPktsUnchecked ) ||
2137- nla_put_u64 (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_DELAYED , sum .InPktsDelayed ) ||
2138- nla_put_u64 (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_OK , sum .InPktsOK ) ||
2139- nla_put_u64 (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_INVALID , sum .InPktsInvalid ) ||
2140- nla_put_u64 (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_LATE , sum .InPktsLate ) ||
2141- nla_put_u64 (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_NOT_VALID , sum .InPktsNotValid ) ||
2142- nla_put_u64 (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_NOT_USING_SA , sum .InPktsNotUsingSA ) ||
2143- nla_put_u64 (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_UNUSED_SA , sum .InPktsUnusedSA ))
2135+ if (nla_put_u64_64bit (skb , MACSEC_RXSC_STATS_ATTR_IN_OCTETS_VALIDATED ,
2136+ sum .InOctetsValidated ,
2137+ MACSEC_RXSC_STATS_ATTR_PAD ) ||
2138+ nla_put_u64_64bit (skb , MACSEC_RXSC_STATS_ATTR_IN_OCTETS_DECRYPTED ,
2139+ sum .InOctetsDecrypted ,
2140+ MACSEC_RXSC_STATS_ATTR_PAD ) ||
2141+ nla_put_u64_64bit (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_UNCHECKED ,
2142+ sum .InPktsUnchecked ,
2143+ MACSEC_RXSC_STATS_ATTR_PAD ) ||
2144+ nla_put_u64_64bit (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_DELAYED ,
2145+ sum .InPktsDelayed ,
2146+ MACSEC_RXSC_STATS_ATTR_PAD ) ||
2147+ nla_put_u64_64bit (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_OK ,
2148+ sum .InPktsOK ,
2149+ MACSEC_RXSC_STATS_ATTR_PAD ) ||
2150+ nla_put_u64_64bit (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_INVALID ,
2151+ sum .InPktsInvalid ,
2152+ MACSEC_RXSC_STATS_ATTR_PAD ) ||
2153+ nla_put_u64_64bit (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_LATE ,
2154+ sum .InPktsLate ,
2155+ MACSEC_RXSC_STATS_ATTR_PAD ) ||
2156+ nla_put_u64_64bit (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_NOT_VALID ,
2157+ sum .InPktsNotValid ,
2158+ MACSEC_RXSC_STATS_ATTR_PAD ) ||
2159+ nla_put_u64_64bit (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_NOT_USING_SA ,
2160+ sum .InPktsNotUsingSA ,
2161+ MACSEC_RXSC_STATS_ATTR_PAD ) ||
2162+ nla_put_u64_64bit (skb , MACSEC_RXSC_STATS_ATTR_IN_PKTS_UNUSED_SA ,
2163+ sum .InPktsUnusedSA ,
2164+ MACSEC_RXSC_STATS_ATTR_PAD ))
21442165 return - EMSGSIZE ;
21452166
21462167 return 0 ;
@@ -2169,10 +2190,18 @@ static int copy_tx_sc_stats(struct sk_buff *skb,
21692190 sum .OutOctetsEncrypted += tmp .OutOctetsEncrypted ;
21702191 }
21712192
2172- if (nla_put_u64 (skb , MACSEC_TXSC_STATS_ATTR_OUT_PKTS_PROTECTED , sum .OutPktsProtected ) ||
2173- nla_put_u64 (skb , MACSEC_TXSC_STATS_ATTR_OUT_PKTS_ENCRYPTED , sum .OutPktsEncrypted ) ||
2174- nla_put_u64 (skb , MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_PROTECTED , sum .OutOctetsProtected ) ||
2175- nla_put_u64 (skb , MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_ENCRYPTED , sum .OutOctetsEncrypted ))
2193+ if (nla_put_u64_64bit (skb , MACSEC_TXSC_STATS_ATTR_OUT_PKTS_PROTECTED ,
2194+ sum .OutPktsProtected ,
2195+ MACSEC_TXSC_STATS_ATTR_PAD ) ||
2196+ nla_put_u64_64bit (skb , MACSEC_TXSC_STATS_ATTR_OUT_PKTS_ENCRYPTED ,
2197+ sum .OutPktsEncrypted ,
2198+ MACSEC_TXSC_STATS_ATTR_PAD ) ||
2199+ nla_put_u64_64bit (skb , MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_PROTECTED ,
2200+ sum .OutOctetsProtected ,
2201+ MACSEC_TXSC_STATS_ATTR_PAD ) ||
2202+ nla_put_u64_64bit (skb , MACSEC_TXSC_STATS_ATTR_OUT_OCTETS_ENCRYPTED ,
2203+ sum .OutOctetsEncrypted ,
2204+ MACSEC_TXSC_STATS_ATTR_PAD ))
21762205 return - EMSGSIZE ;
21772206
21782207 return 0 ;
@@ -2205,14 +2234,30 @@ static int copy_secy_stats(struct sk_buff *skb,
22052234 sum .InPktsOverrun += tmp .InPktsOverrun ;
22062235 }
22072236
2208- if (nla_put_u64 (skb , MACSEC_SECY_STATS_ATTR_OUT_PKTS_UNTAGGED , sum .OutPktsUntagged ) ||
2209- nla_put_u64 (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_UNTAGGED , sum .InPktsUntagged ) ||
2210- nla_put_u64 (skb , MACSEC_SECY_STATS_ATTR_OUT_PKTS_TOO_LONG , sum .OutPktsTooLong ) ||
2211- nla_put_u64 (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_NO_TAG , sum .InPktsNoTag ) ||
2212- nla_put_u64 (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_BAD_TAG , sum .InPktsBadTag ) ||
2213- nla_put_u64 (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_UNKNOWN_SCI , sum .InPktsUnknownSCI ) ||
2214- nla_put_u64 (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_NO_SCI , sum .InPktsNoSCI ) ||
2215- nla_put_u64 (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_OVERRUN , sum .InPktsOverrun ))
2237+ if (nla_put_u64_64bit (skb , MACSEC_SECY_STATS_ATTR_OUT_PKTS_UNTAGGED ,
2238+ sum .OutPktsUntagged ,
2239+ MACSEC_SECY_STATS_ATTR_PAD ) ||
2240+ nla_put_u64_64bit (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_UNTAGGED ,
2241+ sum .InPktsUntagged ,
2242+ MACSEC_SECY_STATS_ATTR_PAD ) ||
2243+ nla_put_u64_64bit (skb , MACSEC_SECY_STATS_ATTR_OUT_PKTS_TOO_LONG ,
2244+ sum .OutPktsTooLong ,
2245+ MACSEC_SECY_STATS_ATTR_PAD ) ||
2246+ nla_put_u64_64bit (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_NO_TAG ,
2247+ sum .InPktsNoTag ,
2248+ MACSEC_SECY_STATS_ATTR_PAD ) ||
2249+ nla_put_u64_64bit (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_BAD_TAG ,
2250+ sum .InPktsBadTag ,
2251+ MACSEC_SECY_STATS_ATTR_PAD ) ||
2252+ nla_put_u64_64bit (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_UNKNOWN_SCI ,
2253+ sum .InPktsUnknownSCI ,
2254+ MACSEC_SECY_STATS_ATTR_PAD ) ||
2255+ nla_put_u64_64bit (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_NO_SCI ,
2256+ sum .InPktsNoSCI ,
2257+ MACSEC_SECY_STATS_ATTR_PAD ) ||
2258+ nla_put_u64_64bit (skb , MACSEC_SECY_STATS_ATTR_IN_PKTS_OVERRUN ,
2259+ sum .InPktsOverrun ,
2260+ MACSEC_SECY_STATS_ATTR_PAD ))
22162261 return - EMSGSIZE ;
22172262
22182263 return 0 ;
@@ -2226,8 +2271,11 @@ static int nla_put_secy(struct macsec_secy *secy, struct sk_buff *skb)
22262271 if (!secy_nest )
22272272 return 1 ;
22282273
2229- if (nla_put_sci (skb , MACSEC_SECY_ATTR_SCI , secy -> sci ) ||
2230- nla_put_u64 (skb , MACSEC_SECY_ATTR_CIPHER_SUITE , DEFAULT_CIPHER_ID ) ||
2274+ if (nla_put_sci (skb , MACSEC_SECY_ATTR_SCI , secy -> sci ,
2275+ MACSEC_SECY_ATTR_PAD ) ||
2276+ nla_put_u64_64bit (skb , MACSEC_SECY_ATTR_CIPHER_SUITE ,
2277+ DEFAULT_CIPHER_ID ,
2278+ MACSEC_SECY_ATTR_PAD ) ||
22312279 nla_put_u8 (skb , MACSEC_SECY_ATTR_ICV_LEN , secy -> icv_len ) ||
22322280 nla_put_u8 (skb , MACSEC_SECY_ATTR_OPER , secy -> operational ) ||
22332281 nla_put_u8 (skb , MACSEC_SECY_ATTR_PROTECT , secy -> protect_frames ) ||
@@ -2312,7 +2360,9 @@ static int dump_secy(struct macsec_secy *secy, struct net_device *dev,
23122360
23132361 if (nla_put_u8 (skb , MACSEC_SA_ATTR_AN , i ) ||
23142362 nla_put_u32 (skb , MACSEC_SA_ATTR_PN , tx_sa -> next_pn ) ||
2315- nla_put_u64 (skb , MACSEC_SA_ATTR_KEYID , tx_sa -> key .id ) ||
2363+ nla_put_u64_64bit (skb , MACSEC_SA_ATTR_KEYID ,
2364+ tx_sa -> key .id ,
2365+ MACSEC_SA_ATTR_PAD ) ||
23162366 nla_put_u8 (skb , MACSEC_SA_ATTR_ACTIVE , tx_sa -> active )) {
23172367 nla_nest_cancel (skb , txsa_nest );
23182368 nla_nest_cancel (skb , txsa_list );
@@ -2353,7 +2403,8 @@ static int dump_secy(struct macsec_secy *secy, struct net_device *dev,
23532403 }
23542404
23552405 if (nla_put_u8 (skb , MACSEC_RXSC_ATTR_ACTIVE , rx_sc -> active ) ||
2356- nla_put_sci (skb , MACSEC_RXSC_ATTR_SCI , rx_sc -> sci )) {
2406+ nla_put_sci (skb , MACSEC_RXSC_ATTR_SCI , rx_sc -> sci ,
2407+ MACSEC_RXSC_ATTR_PAD )) {
23572408 nla_nest_cancel (skb , rxsc_nest );
23582409 nla_nest_cancel (skb , rxsc_list );
23592410 goto nla_put_failure ;
@@ -2413,7 +2464,9 @@ static int dump_secy(struct macsec_secy *secy, struct net_device *dev,
24132464
24142465 if (nla_put_u8 (skb , MACSEC_SA_ATTR_AN , i ) ||
24152466 nla_put_u32 (skb , MACSEC_SA_ATTR_PN , rx_sa -> next_pn ) ||
2416- nla_put_u64 (skb , MACSEC_SA_ATTR_KEYID , rx_sa -> key .id ) ||
2467+ nla_put_u64_64bit (skb , MACSEC_SA_ATTR_KEYID ,
2468+ rx_sa -> key .id ,
2469+ MACSEC_SA_ATTR_PAD ) ||
24172470 nla_put_u8 (skb , MACSEC_SA_ATTR_ACTIVE , rx_sa -> active )) {
24182471 nla_nest_cancel (skb , rxsa_nest );
24192472 nla_nest_cancel (skb , rxsc_nest );
@@ -3145,9 +3198,9 @@ static struct net *macsec_get_link_net(const struct net_device *dev)
31453198static size_t macsec_get_size (const struct net_device * dev )
31463199{
31473200 return 0 +
3148- nla_total_size (8 ) + /* SCI */
3201+ nla_total_size_64bit (8 ) + /* SCI */
31493202 nla_total_size (1 ) + /* ICV_LEN */
3150- nla_total_size (8 ) + /* CIPHER_SUITE */
3203+ nla_total_size_64bit (8 ) + /* CIPHER_SUITE */
31513204 nla_total_size (4 ) + /* WINDOW */
31523205 nla_total_size (1 ) + /* ENCODING_SA */
31533206 nla_total_size (1 ) + /* ENCRYPT */
@@ -3166,9 +3219,11 @@ static int macsec_fill_info(struct sk_buff *skb,
31663219 struct macsec_secy * secy = & macsec_priv (dev )-> secy ;
31673220 struct macsec_tx_sc * tx_sc = & secy -> tx_sc ;
31683221
3169- if (nla_put_sci (skb , IFLA_MACSEC_SCI , secy -> sci ) ||
3222+ if (nla_put_sci (skb , IFLA_MACSEC_SCI , secy -> sci ,
3223+ IFLA_MACSEC_PAD ) ||
31703224 nla_put_u8 (skb , IFLA_MACSEC_ICV_LEN , secy -> icv_len ) ||
3171- nla_put_u64 (skb , IFLA_MACSEC_CIPHER_SUITE , DEFAULT_CIPHER_ID ) ||
3225+ nla_put_u64_64bit (skb , IFLA_MACSEC_CIPHER_SUITE ,
3226+ DEFAULT_CIPHER_ID , IFLA_MACSEC_PAD ) ||
31723227 nla_put_u8 (skb , IFLA_MACSEC_ENCODING_SA , tx_sc -> encoding_sa ) ||
31733228 nla_put_u8 (skb , IFLA_MACSEC_ENCRYPT , tx_sc -> encrypt ) ||
31743229 nla_put_u8 (skb , IFLA_MACSEC_PROTECT , secy -> protect_frames ) ||
0 commit comments