diff options
Diffstat (limited to 'include/linux/ethtool.h')
-rw-r--r-- | include/linux/ethtool.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 23ccea811297..0e5de2fb960c 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
@@ -256,6 +256,19 @@ struct ethtool_perm_addr { | |||
256 | __u8 data[0]; | 256 | __u8 data[0]; |
257 | }; | 257 | }; |
258 | 258 | ||
259 | /* boolean flags controlling per-interface behavior characteristics. | ||
260 | * When reading, the flag indicates whether or not a certain behavior | ||
261 | * is enabled/present. When writing, the flag indicates whether | ||
262 | * or not the driver should turn on (set) or off (clear) a behavior. | ||
263 | * | ||
264 | * Some behaviors may read-only (unconditionally absent or present). | ||
265 | * If such is the case, return EINVAL in the set-flags operation if the | ||
266 | * flag differs from the read-only value. | ||
267 | */ | ||
268 | enum ethtool_flags { | ||
269 | ETH_FLAG_LRO = (1 << 15), /* LRO is enabled */ | ||
270 | }; | ||
271 | |||
259 | #ifdef __KERNEL__ | 272 | #ifdef __KERNEL__ |
260 | 273 | ||
261 | struct net_device; | 274 | struct net_device; |
@@ -272,6 +285,8 @@ u32 ethtool_op_get_tso(struct net_device *dev); | |||
272 | int ethtool_op_set_tso(struct net_device *dev, u32 data); | 285 | int ethtool_op_set_tso(struct net_device *dev, u32 data); |
273 | u32 ethtool_op_get_ufo(struct net_device *dev); | 286 | u32 ethtool_op_get_ufo(struct net_device *dev); |
274 | int ethtool_op_set_ufo(struct net_device *dev, u32 data); | 287 | int ethtool_op_set_ufo(struct net_device *dev, u32 data); |
288 | u32 ethtool_op_get_flags(struct net_device *dev); | ||
289 | int ethtool_op_set_flags(struct net_device *dev, u32 data); | ||
275 | 290 | ||
276 | /** | 291 | /** |
277 | * ðtool_ops - Alter and report network device settings | 292 | * ðtool_ops - Alter and report network device settings |
@@ -307,6 +322,8 @@ int ethtool_op_set_ufo(struct net_device *dev, u32 data); | |||
307 | * get_strings: Return a set of strings that describe the requested objects | 322 | * get_strings: Return a set of strings that describe the requested objects |
308 | * phys_id: Identify the device | 323 | * phys_id: Identify the device |
309 | * get_stats: Return statistics about the device | 324 | * get_stats: Return statistics about the device |
325 | * get_flags: get 32-bit flags bitmap | ||
326 | * set_flags: set 32-bit flags bitmap | ||
310 | * | 327 | * |
311 | * Description: | 328 | * Description: |
312 | * | 329 | * |
@@ -369,6 +386,8 @@ struct ethtool_ops { | |||
369 | void (*complete)(struct net_device *); | 386 | void (*complete)(struct net_device *); |
370 | u32 (*get_ufo)(struct net_device *); | 387 | u32 (*get_ufo)(struct net_device *); |
371 | int (*set_ufo)(struct net_device *, u32); | 388 | int (*set_ufo)(struct net_device *, u32); |
389 | u32 (*get_flags)(struct net_device *); | ||
390 | int (*set_flags)(struct net_device *, u32); | ||
372 | }; | 391 | }; |
373 | #endif /* __KERNEL__ */ | 392 | #endif /* __KERNEL__ */ |
374 | 393 | ||
@@ -410,6 +429,8 @@ struct ethtool_ops { | |||
410 | #define ETHTOOL_SUFO 0x00000022 /* Set UFO enable (ethtool_value) */ | 429 | #define ETHTOOL_SUFO 0x00000022 /* Set UFO enable (ethtool_value) */ |
411 | #define ETHTOOL_GGSO 0x00000023 /* Get GSO enable (ethtool_value) */ | 430 | #define ETHTOOL_GGSO 0x00000023 /* Get GSO enable (ethtool_value) */ |
412 | #define ETHTOOL_SGSO 0x00000024 /* Set GSO enable (ethtool_value) */ | 431 | #define ETHTOOL_SGSO 0x00000024 /* Set GSO enable (ethtool_value) */ |
432 | #define ETHTOOL_GFLAGS 0x00000025 /* Get flags bitmap(ethtool_value) */ | ||
433 | #define ETHTOOL_SFLAGS 0x00000026 /* Set flags bitmap(ethtool_value) */ | ||
413 | 434 | ||
414 | /* compatibility with older code */ | 435 | /* compatibility with older code */ |
415 | #define SPARC_ETH_GSET ETHTOOL_GSET | 436 | #define SPARC_ETH_GSET ETHTOOL_GSET |