On Fri, Nov 8, 2013 at 5:08 PM, Jason Matthews <jason.david.matthews at gmail.com> wrote:> I attempted the patch, but had to add a declaration to get it to compile. I > also added the gateway like before. Here's a link to the modified diff I > used and the pcaps from tftpserver and mirrored port from boot to reset. > > http://ge.tt/136167y/v/0 > > I'm also not sure about if I'm building correctly or not. Considering that > I get a different syslinux.efi when I compile without making modifications > to the source (one that doesn't work with same subnet) makes me wonder if > some of my libraries are bad or something. > > At any rate, thanks for all the help. I think I've learned more trying to > figure out what's going on with this than I have in the past year.Try txdata->GatewayAddress = &IPInfo.gateway; not txdata->GatewayAddress = IPInfo.gateway; -- -Gene> On Fri, Nov 8, 2013 at 2:57 PM, H. Peter Anvin <hpa at zytor.com> wrote: >> Here is a completely untested patch if someone wants to try and take it >> for a spin?
On Sat, Nov 9, 2013 at 11:20 AM, Gene Cumm <gene.cumm at gmail.com> wrote:> On Fri, Nov 8, 2013 at 5:08 PM, Jason Matthews > <jason.david.matthews at gmail.com> wrote: >> I attempted the patch, but had to add a declaration to get it to compile. I >> also added the gateway like before. Here's a link to the modified diff I >> used and the pcaps from tftpserver and mirrored port from boot to reset. >> >> http://ge.tt/136167y/v/0 >> >> I'm also not sure about if I'm building correctly or not. Considering that >> I get a different syslinux.efi when I compile without making modifications >> to the source (one that doesn't work with same subnet) makes me wonder if >> some of my libraries are bad or something. >> >> At any rate, thanks for all the help. I think I've learned more trying to >> figure out what's going on with this than I have in the past year. > > Try > txdata->GatewayAddress = &IPInfo.gateway; > not > txdata->GatewayAddress = IPInfo.gateway;And with this forced, it does send the requests but it may not route properly, depending on the gateway. The gateway must be NULL if local or the address of the gateway if not local. -- -Gene>> On Fri, Nov 8, 2013 at 2:57 PM, H. Peter Anvin <hpa at zytor.com> wrote: >>> Here is a completely untested patch if someone wants to try and take it >>> for a spin?
On Sat, Nov 9, 2013 at 11:33 AM, Gene Cumm <gene.cumm at gmail.com> wrote:> On Sat, Nov 9, 2013 at 11:20 AM, Gene Cumm <gene.cumm at gmail.com> wrote: >> On Fri, Nov 8, 2013 at 5:08 PM, Jason Matthews >> <jason.david.matthews at gmail.com> wrote: >>> I attempted the patch, but had to add a declaration to get it to compile. I >>> also added the gateway like before. Here's a link to the modified diff I >>> used and the pcaps from tftpserver and mirrored port from boot to reset. >>> >>> http://ge.tt/136167y/v/0 >>> >>> I'm also not sure about if I'm building correctly or not. Considering that >>> I get a different syslinux.efi when I compile without making modifications >>> to the source (one that doesn't work with same subnet) makes me wonder if >>> some of my libraries are bad or something. >>> >>> At any rate, thanks for all the help. I think I've learned more trying to >>> figure out what's going on with this than I have in the past year. >> >> Try >> txdata->GatewayAddress = &IPInfo.gateway; >> not >> txdata->GatewayAddress = IPInfo.gateway; > > And with this forced, it does send the requests but it may not route > properly, depending on the gateway. > > The gateway must be NULL if local or the address of the gateway if not local. > > -- > -Gene > >>> On Fri, Nov 8, 2013 at 2:57 PM, H. Peter Anvin <hpa at zytor.com> wrote: >>>> Here is a completely untested patch if someone wants to try and take it >>>> for a spin?core_udp_open() should bind to the local IP address and obtain a local UDP port allocation. core_udp_close() should release the UDP port allocation. core_udp_sendto() knows the remote IP address and remote UDP port and must calculate the GatewayAddress. core_udp_connect() is passed the remote IP address and UDP port, calculates the GatewayAddress and stores all three for core_udp_send(). core_udp_send() should only copy the local/remote IP address/UDP port and GatewayAddress, then set the other flags/values as needed. Now to get core_udp_connect() to calculate/store the values for reuse. -- -Gene