On Tue, Nov 10, 2015 at 11:28:10AM +0100, Laszlo Ersek wrote: > On 11/10/15 11:20, Conen, Johannes wrote: > > Hmm, you're right..... is it briefly mentioned in the "ShellPkg > > Notes.txt" - I must admit, I only took a look at the > > "UDK2015-ReleaseNotes-MyWorkSpace.txt" and expected all major changes > > to mentioned there (and well, they were, like the moving of the > > library files). So this non-backwards-compatibility from UDK2015 to > > UDK2014 regarding network-related stuff is intended? > > I'll have to let Jiaxin answer this question; I'm not a participant in > UDK feature planning. And, I have no idea how UDK releases account for > compatibility in general. > > (My *guess* is that UDK2015 generally targets (or moved towards) UEFI > 2.5, and Ip4Config (version 1) is apparently deprecated in UEFI 2.5.)
The actual wording from the specification is: --- The EFI_IP4_CONFIG_PROTOCOL has been replaced with the new EFI_IP4_CONFIG2_PROTOCOL. • All new designs based on this specification should exclusively use EFI_IP4_CONFIG2_PROTOCOL . • The EFI_IP4_CONFIG_PROTOCOL will be removed in the next revision of this specification. --- Clearly this creates a compatibility breakage at some point. Is this something we consider "not a problem", or should the shell implement (providing a reference for how to implement) fallback to EFI_IP4_CONFIG_PROTOCOL if EFI_IP4_CONFIG2_PROTOCOL is not available? Regards, Leif > Thanks > Laszlo > > > > > Greetings > > Johannes > > > > -----Ursprüngliche Nachricht----- > > Von: Laszlo Ersek [mailto:ler...@redhat.com] > > Gesendet: Dienstag, 10. November 2015 11:06 > > An: Conen, Johannes; Wu, Jiaxin; edk2-devel@lists.01.org > > Cc: Leif Lindholm (Linaro address) > > Betreff: Re: [edk2] ShellPkg: Network commands (ifconfig/ping) broken > > > > On 11/10/15 10:49, Conen, Johannes wrote: > >> Hi there, > >> > >> I made my tests with the binary shell from ShellBinPkg from UDK2014, > >> from UDK2015, the current master and a few commits in between and > >> rebuilt the shell from ShellPkg for UDK2014, UDK2015, the current > >> master and a few commits in between UDK2014 and UDK2015. > >> > >> It worked fine with r17868 and didn't work anymore with r17869, so it > >> has to be that commit (I of course rebuilt the shell from ShellPkg). > >> If I put both shells on a USB-stick and switch between them on the > >> fly, it works in the one built from r17868 and doesn't work in the one > >> built from r17869. Regarding ShellBinPkg: the last version that worked > >> is r17619 (which is quite logical since the version after that, > >> r18187, is built from ShellPkg r18186, which didn't work for me > >> anymore). > >> > >> I'm not working on OVMF, but on real hardware (X64) - don't know > >> exactly with which version the UEFI firmware was written, but I assume > >> it's UDK2014. I found nothing in the release notes that would break > >> backwards compatibility to firmware versions built with older EDKII > >> versions in this regard. > > > > Okay, that seems to explain it. The platform firmware on your physical > > machine provides Ip4Config (version 1) only, but the shell built from > > recent edk2 (and probably the binary shipped in UDK2015) requires > > Ip4Config2. > > > > Hm... I have not been a UDK user, but now I downloaded "UDK2015.Notes.zip", > > and in "ShellPkg Notes.txt", it says under "NEW FEATURES AND CHANGES", > > point 15: > > > > Change "ping" and "ifconfig" code to consume Ip4Config2 protocol. > > > > So I think this has been (technically) documented in the UDK2015 release. > > Perhaps the lack of compatibility with UDK2014 should have been emphasized. > > > > (But, I'm just a curious bystander in this discussion anwyay...) > > > > Thanks > > Laszlo > > > >> > >> With best regards, > >> Johannes Conen > >> > >> Siemens AG > >> Process Industries and Drives Division Process Automation > >> Manufacturing Karlsruhe PD PA MF-K IPC 2 Oestliche Rheinbrueckenstr. > >> 50 > >> 76187 Karlsruhe, Germany > >> mailto:johannes.co...@siemens.com > >> > >> > >> -----Ursprüngliche Nachricht----- > >> Von: Wu, Jiaxin [mailto:jiaxin...@intel.com] > >> Gesendet: Dienstag, 10. November 2015 02:42 > >> An: Laszlo Ersek; Conen, Johannes; edk2-devel@lists.01.org > >> Cc: Leif Lindholm (Linaro address) > >> Betreff: RE: [edk2] ShellPkg: Network commands (ifconfig/ping) broken > >> > >> Hi Laszlo and Conen, > >> Thanks for your reply, I have double checked the ShellBinPkg and ShellPkg > >> in UDK2015 release version, Both of them have included my patch for > >> Ip4Config Protocol deprecated work. > >> I'm also confused by the test result below, seems only time appeared > >> abnormal. > >> > >> Conen: Are you using the shell binary released in UDK2015? > >> > >> Thanks. > >> Jiaxin > >> > >> -----Original Message----- > >> From: Laszlo Ersek [mailto:ler...@redhat.com] > >> Sent: Tuesday, November 10, 2015 4:30 AM > >> To: Conen, Johannes; edk2-devel@lists.01.org > >> Cc: Leif Lindholm (Linaro address); Wu, Jiaxin > >> Subject: Re: [edk2] ShellPkg: Network commands (ifconfig/ping) broken > >> > >> On 11/09/15 16:52, Conen, Johannes wrote: > >>> Hello everyone, > >>> > >>> after switching from UDK2014 to UDK2015, I noticed that the network > >>> commands (ifconfig / ping) don't work anymore. ifconfig just exits > >>> with no feedback and ping says "Config no mapping" (logical, as it is > >>> not possible to get an IP address via ifconfig). In UDK2014 everything > >>> worked fine. > >>> > >>> With the help of unixsmurf (thanks a lot) > >> > >> Argh. Can we stop using these "funny" nicks on IRC? > >> > >> "unixsmurf" is Leif. > >> > >> What do you think, Leif? :) > >> > >>> I went on bughunting and > >>> found out that commit r17869 / git sha > >>> 7c25b7ea5b2c029a9e7a0be57f7c20f31d720c7d broke it. Wild guess: it has > >>> something to do with the new protocol. > >> > >> That's close, but my take is not that exact commit. Instead, what about > >> this: > >> > >> https://github.com/tianocore/edk2/commit/2aa0eb5df61e > >> > >> == SVN rev 17917. > >> > >> (I reviewed that commit.) > >> > >> But, it works for me: > >> > >>> Shell> ifconfig -s eth0 dhcp > >>> Shell> ifconfig -l eth0 > >>> > >>> ----------------------------------------------------------------- > >>> > >>> name : eth0 > >>> Media State : Media present > >>> policy : dhcp > >>> mac addr : 52:54:00:29:80:AE > >>> > >>> ipv4 address : 192.168.122.182 > >>> > >>> subnet mask : 255.255.255.0 > >>> > >>> default gateway: 192.168.122.1 > >>> > >>> Routes (2 entries): > >>> Entry[0] > >>> Subnet : 192.168.122.0 > >>> Netmask: 255.255.255.0 > >>> Gateway: 0.0.0.0 > >>> Entry[1] > >>> Subnet : 0.0.0.0 > >>> Netmask: 0.0.0.0 > >>> Gateway: 192.168.122.1 > >>> > >>> DNS server : > >>> 192.168.122.1 > >>> > >>> > >>> ----------------------------------------------------------------- > >>> Shell> ping 8.8.8.8 > >>> Ping 8.8.8.8 16 data bytes. > >>> 16 bytes from 8.8.8.8 : icmp_seq=1 ttl=0 time=30640ms > >>> 16 bytes from 8.8.8.8 : icmp_seq=2 ttl=0 time=31249ms > >>> 16 bytes from 8.8.8.8 : icmp_seq=3 ttl=0 time=33280ms > >>> 16 bytes from 8.8.8.8 : icmp_seq=4 ttl=0 time=38577ms > >>> 16 bytes from 8.8.8.8 : icmp_seq=5 ttl=0 time=28432ms > >>> 16 bytes from 8.8.8.8 : icmp_seq=6 ttl=0 time=31275ms > >>> 16 bytes from 8.8.8.8 : icmp_seq=7 ttl=0 time=26576ms > >>> 16 bytes from 8.8.8.8 : icmp_seq=8 ttl=0 time=33192ms > >>> 16 bytes from 8.8.8.8 : icmp_seq=9 ttl=0 time=31112ms > >>> 16 bytes from 8.8.8.8 : icmp_seq=10 ttl=0 time=28237ms > >>> > >>> 10 packets transmitted, 10 received, 0% packet loss, time 312570ms > >>> > >>> Rtt(round trip time) min=26576ms max=38577ms avg=31257ms > >> > >> This on OVMF just built from edk2 at SVN rev18759. (Note that in OVMF the > >> shell is built from source as well.) > >> > >>> Personally I think this is a critical issue - it practically makes it > >>> impossible to use any network related stuff in the UEFI shell. > >> > >> I suspect that you are using an old (UDK2014) shell binary on top of a new > >> (UDK2015) network stack, or vice-versa. > >> > >> If you check the commit message of SVN rev 17917 / git 2aa0eb5df61e, it > >> said that it was safe to remove the Ip4Config protocol *because* SVN rev > >> 17869 / git 7c25b7e [that you have found] had already moved ping / > >> ifconfig to the new protocol. > >> > >> And at the time of SVN rev 17869 / git 7c25b7e, the new protocol existed > >> (see SVN rev 17853 / git 1f6729ffe980). > >> > >> In chronological order: > >> - SVN rev 17853 / git 1f6729ff: implements the Ip4Config2 protocol, > >> - SVN rev 17869 / git 7c25b7ea: migrates ping & ifconfig to Ip4Config2, > >> - SVN rev 17917 / git 2aa0eb5d: removes Ip4Config (no more users) > >> > >> So, assuming you build *all* of your firmware from edk2, from source, > >> including the shell, you should end up with working ping & ifconfig at any > >> stage. > >> > >> I don't know at what stage UDK2015 was packaged. If it happened after SVN > >> rev 17917 / git 2aa0eb5d, then I guess the message of that commit > >> applies: "Ip4ConfigDxe driver is deprecated in UEFI 2.5, so we will not > >> support original Ip4Config Protocol" -- please use a conformant shell I > >> guess. > >> > >> I'm still a bit confused, because ShellBinPkg was also updated in SVN rev > >> 18187 / git 1fe76acc, which was about a month after SVN rev 17917 / git > >> 2aa0eb5d above. So unless Intel released UDK2015 exactly within that one > >> month, I cannot see how you can encounter this problem. > >> > >> Are you using a shell binary whose source is still based on UDK2014 (or > >> older)? > >> > >> Thanks, > >> Laszlo > >> > >> > >>> With best regards, > >>> Johannes Conen > >>> > >>> Siemens AG > >>> Process Industries and Drives Division Process Automation > >>> Manufacturing Karlsruhe PD PA MF-K IPC 2 Oestliche Rheinbrueckenstr. > >>> 50 > >>> 76187 Karlsruhe, Germany > >>> mailto:johannes.co...@siemens.com > >>> > >>> > >>> _______________________________________________ > >>> edk2-devel mailing list > >>> edk2-devel@lists.01.org > >>> https://lists.01.org/mailman/listinfo/edk2-devel > >>> > >> > > > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel