Reducing fragmentation of packets in a networking environment
First Claim
1. A method comprising:
- by computer program instructions on a computing device, wherein the computing device is a hypervisor in a virtualized computing environment;
receiving a packet prepared for transmission over a communication link to a network, wherein data values to be added by the computing device are absent from the prepared packet;
determining whether to transmit the received packet over the communication link based on whether a size of the received packet exceeds a threshold, wherein the threshold accounts for the data values to be added by the computing device in view of a maximum packet size for packets prepared for transmission to the network; and
in response to determining that the size of the received packet exceeds the threshold, determining not to send the received packet over the communication link including generating a simulated error condition and sending an error message to a preparer of the received packet, the error message adapted to automatically cause the preparer to reformat payload data of the packet into a smaller-sized packet and then send the smaller-sized packet to the computing device for transmission to the network.
5 Assignments
0 Petitions
Accused Products
Abstract
Automated techniques reduce packet fragmentation in a communications network environment, including a networking environment that uses tunnels. In a tunneling environment, a tunnel endpoint evaluates whether tunnel processing for an outbound packet will cause the packet to exceed a particular size such as a message transmission unit (“MTU”) size, which in turn would lead to error processing and/or fragmentation of the packet. Similar MTU and packet mismatch may occur in a system across the virtual machine and the hypervisor, a networking stack and the physical MTU possible on the network. If so, the tunnel endpoint or the network driver simulates an error condition and returns an error message to the protocol stack that prepared the packet, so that the packet size can be reduced before the packet is actually sent on the tunnel. Existing functionality is leveraged to perform the size reduction, thus obviating the need for administrator intervention.
-
Citations
16 Claims
-
1. A method comprising:
by computer program instructions on a computing device, wherein the computing device is a hypervisor in a virtualized computing environment; receiving a packet prepared for transmission over a communication link to a network, wherein data values to be added by the computing device are absent from the prepared packet; determining whether to transmit the received packet over the communication link based on whether a size of the received packet exceeds a threshold, wherein the threshold accounts for the data values to be added by the computing device in view of a maximum packet size for packets prepared for transmission to the network; and in response to determining that the size of the received packet exceeds the threshold, determining not to send the received packet over the communication link including generating a simulated error condition and sending an error message to a preparer of the received packet, the error message adapted to automatically cause the preparer to reformat payload data of the packet into a smaller-sized packet and then send the smaller-sized packet to the computing device for transmission to the network. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. An apparatus comprising:
-
a computer comprising a processor and a computing device, wherein the computing device is a hypervisor in a virtualized computing environment; and instructions that when executed by the processor cause the computing device to carry out the steps of; receiving a packet prepared for transmission over a communication link to a network, wherein data values to be added by the computing device are absent from the prepared packet; determining whether to transmit the received packet over the communication link based on whether a size of the received packet exceeds a threshold, wherein the threshold accounts for the data values to be added by the computing device, in view of a maximum packet size for packets prepared for transmission to the network; and in response to determining that the size of the received packet exceeds the threshold, determining not to send the received packet over the communication link including generating a simulated error condition and sending an error message to a preparer of the received packet, the error message adapted to automatically cause the preparer to reformat payload data of the packet into a smaller-sized packet and then send the smaller-sized packet to the computing device for transmission to the network. - View Dependent Claims (9, 10, 11)
-
-
12. A computer program product comprising:
-
a computer-readable storage medium having computer readable program code embodied therein, wherein the computer readable storage medium is not a signal, the computer-readable program code when executed by a computing device causes the computing device to carry out the steps of; receiving a packet prepared for transmission over a communication link to a network, wherein data values to be added by the computing device are absent from the prepared packet; determining whether to transmit the received packet over the communication link based on whether a size of the received packet exceeds a threshold, wherein the threshold accounts for a maximum packet size for packets able to be transmitted on the communication link; and in response to determining that the size of the received packet exceeds the threshold, determining not to send the received packet over the communication link including generating a simulated error condition and sending an error message to a preparer of the received packet without transmitting the packet on the communication link, the error message adapted to automatically cause the preparer to reformat payload data of the packet into a smaller-sized packet and then send the smaller-sized packet to the computing device for transmission to the network, wherein the computing device is a hypervisor in a virtualized computing environment. - View Dependent Claims (13, 14, 15, 16)
-
Specification