acket_bytes variable in the vnet_hw_interface_t structure.
The software MTU (previously max_l3_packet_bytes) is in vnet_sw_interface_t->in mtu[VNET_N_MTU].
# API
## Set physical MTU
This API message is used to set the physical MTU. It is currently limited to Ethernet interfaces. Note, this programs the NIC.
```
autoreply define hw_interface_set_mtu
{
u32 client_index;
u32 context;
u32 sw_if_index;
u16 mtu;
};
```## Set the L2 payload MTU (not including the L2 header) and per-protocol MTUs
This API message sets the L3 payload MTU. E.g. on Ethernet it is the maximum size of the Ethernet payload. If a value is left as 0, then the default is picked from VNET_MTU_L3.
```
autoreply define sw_interface_set_mtu
{
u32 client_index;
u32 context;
u32 sw_if_index;
/* $$$$ Replace with enum */
u32 mtu[4]; /* 0 - L3, 1 - IP4, 2 - IP6, 3 - MPLS */
};
```## Get interface MTU
The various MTUs on an interface can be queried with the sw_interface_dump/sw_interface_details calls.
```
define sw_interface_details
{
/* MTU */
u16 link_mtu;
/* Per protocol MTUs */
u32 mtu[4]; /* 0 - L3, 1 - IP4, 2 - IP6, 3 - MPLS */
};
```# CLI
```
set interface mtu [packet|ip4|ip6|mpls] <value> <interface>
```