From 832668105e22c42f965970078124cdc2c556ac0d Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 15 Oct 2008 00:49:59 +0100 Subject: [netdevice] Add maximum packet length as a net device property Currently this length is set at device allocation time, and is never changed. --- src/include/gpxe/ethernet.h | 2 ++ src/include/gpxe/ipoib.h | 4 ++++ src/include/gpxe/netdevice.h | 5 +++++ 3 files changed, 11 insertions(+) (limited to 'src/include') diff --git a/src/include/gpxe/ethernet.h b/src/include/gpxe/ethernet.h index 158fe066a..ff0fd6c11 100644 --- a/src/include/gpxe/ethernet.h +++ b/src/include/gpxe/ethernet.h @@ -9,6 +9,7 @@ #include #include +#include extern struct ll_protocol ethernet_protocol; @@ -26,6 +27,7 @@ static inline struct net_device * alloc_etherdev ( size_t priv_size ) { netdev = alloc_netdev ( priv_size ); if ( netdev ) { netdev->ll_protocol = ðernet_protocol; + netdev->max_pkt_len = ETH_FRAME_LEN; } return netdev; } diff --git a/src/include/gpxe/ipoib.h b/src/include/gpxe/ipoib.h index bcbdc4c69..3ec464e39 100644 --- a/src/include/gpxe/ipoib.h +++ b/src/include/gpxe/ipoib.h @@ -8,6 +8,9 @@ #include +/** IPoIB packet length */ +#define IPOIB_PKT_LEN 2048 + /** IPoIB MAC address length */ #define IPOIB_ALEN 20 @@ -68,6 +71,7 @@ static inline struct net_device * alloc_ipoibdev ( size_t priv_size ) { netdev = alloc_netdev ( priv_size ); if ( netdev ) { netdev->ll_protocol = &ipoib_protocol; + netdev->max_pkt_len = IPOIB_PKT_LEN; } return netdev; } diff --git a/src/include/gpxe/netdevice.h b/src/include/gpxe/netdevice.h index cdc8cbad4..9f39e0c91 100644 --- a/src/include/gpxe/netdevice.h +++ b/src/include/gpxe/netdevice.h @@ -241,6 +241,11 @@ struct net_device { * This is the bitwise-OR of zero or more NETDEV_XXX constants. */ unsigned int state; + /** Maximum packet length + * + * This length includes any link-layer headers. + */ + size_t max_pkt_len; /** TX packet queue */ struct list_head tx_queue; /** RX packet queue */ -- cgit v1.2.3-55-g7522