- Head.Fragment = IP4_HEAD_FRAGMENT_FIELD (DontFragment, FALSE, 0);\r
- HeadLen = (TxData->OptionsLength + 3) & (~0x03);\r
+ if (TxData->OverrideData != NULL) {\r
+ Override = TxData->OverrideData;\r
+ Head.Protocol = Override->Protocol;\r
+ Head.Tos = Override->TypeOfService;\r
+ Head.Ttl = Override->TimeToLive;\r
+ DontFragment = Override->DoNotFragment;\r
+\r
+ CopyMem (&Head.Src, &Override->SourceAddress, sizeof (IP4_ADDR));\r
+ CopyMem (&GateWay, &Override->GatewayAddress, sizeof (IP4_ADDR));\r
+\r
+ Head.Src = NTOHL (Head.Src);\r
+ GateWay = NTOHL (GateWay);\r
+ } else {\r
+ Head.Src = IpIf->Ip;\r
+ GateWay = IP4_ALLZERO_ADDRESS;\r
+ Head.Protocol = Config->DefaultProtocol;\r
+ Head.Tos = Config->TypeOfService;\r
+ Head.Ttl = Config->TimeToLive;\r
+ DontFragment = Config->DoNotFragment;\r
+ }\r
+\r
+ Head.Fragment = IP4_HEAD_FRAGMENT_FIELD (DontFragment, FALSE, 0);\r
+ HeadLen = (TxData->OptionsLength + 3) & (~0x03);\r
+\r
+ OptionsLength = TxData->OptionsLength;\r
+ OptionsBuffer = (UINT8 *) (TxData->OptionsBuffer);\r
+ }\r