-
Notifications
You must be signed in to change notification settings - Fork 3k
Merge feature-emac branch into master #6847
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@kjbracey-arm Is the goal to bring this in for 5.9? |
@cmonr - yes, the aim is to get this in this week for 5.9 |
/morph build |
Build : SUCCESSBuild number : 2039 Triggering tests/morph test |
Test : FAILUREBuild number : 1855 |
Exporter Build : FAILUREBuild number : 1688 |
Making a note here that this will need a PR for its example as well as a handbook PR for documentation, if not already available. |
@kjbracey-arm, it looks like the mbed 2 compilation test in events is trying to compile the features/network folder without the tracing folder. Should this list be updated? Can we just remove the entire features folder for the test? |
@kjbracey-arm Also, take a look at the pr-head build. If you don't have access or need help navigating the Jenkins links, let us know. The error(s):
|
Besides the current merge conflicts/CI errors was there anything in particular you'd like me to review? A (very) quick skim from a code perspective looks good to me. |
Initial work by Bartek Szatkowski in #4079, reworked following review of #5202 to transform the entire system into C++, retaining the basic functionality. Bartek's summary: * Porting ethernet to EMAC * Updating EMAC to enable multiple interfaces * Untangling networking classes, making the abstractions a bit clearer to follow, etc * General refactoring * Removal of DEVICE_EMAC flag and introducing DEVICE_ETH and DEVICE_WIFI Revisions since initial branch: * Remove lwip depencies * Correct doxygen warnings * Remove emac_api.h, replace with C++ EMAC abstract class. * Create OnboardNetworkInterface, and LWIP implementation. * Mappings since #4079 lwip-interface/nsapi_stack_lwip.c -> LWIPStack.cpp lwip-interface/ipstack_lwip.c -> LWIPInterface.cpp netsocket/mbed_ipstack.h -> OnboardNetworkStack.h hal/emac_api.h -> EMAC.h * Reinstate use of EthInterface abstraction * Correct and clarify HW address EMAC ops * Restore MBED_MAC_ADDR implementation * Integrate PPP support with LWIP::Interface. * Convert K64F lwIP driver to K64F_EMAC. To do: * Convert emac_stack_mem.h to follow this pattern. * Figure out DEVICE_ETH/EMAC * Update all drivers to use EMAC
Rather than let "EthernetInterface" be the base EMAC NetworkInterface, insert an "EMACInterface" class. EthernetInterface then derives from EMACInterface and EthInterface. A Wi-Fi driver can derive from EMACInterface and WiFiInterface - this will be more logical than deriving from EthernetInterface and WiFiInterface. This does mean adding a couple of virtual inheritances to avoid duplicate NetworkInterfaces: NetworkInterface / \ virtual / \ virtual / \ EMACInterface WiFiInterface \ / \ / \ / MyCustomWiFiInterface
This has been superceded by CellularBase. Name change occurred late in review of #4119 and original unused CellularInterface was left behind.
GitHub display went weird - rebased feature-emac to clear it up. Shouldn't cause a problem, as no open PRs to it. |
features/netsocket/mbed_lib.json
Outdated
"present": 1 | ||
"present": 1, | ||
"default-stack": "LWIP", | ||
"default-interface-type": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This shouldn't be here. Seemingly, its added to targets.json already.
Restarting pr-head. License checkout issue. |
Build : FAILUREBuild number : 2127 |
@kjbracey-arm
This is with the K64F nanostack-border-router example |
Okay, just going to have to kill the border router test again. Root cause here is that you can't have DEVICE_EMAC enabled on an ARMCC build if you don't have a default network stack. Border router app is not touching the network stack setting, so it's LWIP, but it's removing FEATURE_LWIP, so left with no default stack. We can't fix this up until after the PR is merged, when it can switch the default network stack to Nanostack. |
Remove check for LWIP - check target flagging for EMAC drivers. Should still be DEVICE_EMAC, but tooling doesn't support that.
/morph build |
Build : SUCCESSBuild number : 2129 Triggering tests/morph test |
Test : FAILUREBuild number : 1920 |
Exporter Build : SUCCESSBuild number : 1752 |
@kjbracey-arm Good news and bad news. The bad news is that this hit a test issue that is in the process of being resolved here: #6993 The good news is that after a rebase once that PR is in, it looks like CI should pass! |
/morph build |
Build : SUCCESSBuild number : 2135 Triggering tests/morph test |
Test : SUCCESSBuild number : 1930 |
Exporter Build : SUCCESSBuild number : 1762 |
Exporter Build : FAILUREBuild number : 1777 |
Description
Bring in the new
EMAC
network driver subsystem from thefeature-emac
branch. Primary PRs for work on that branch were #5558 and #5750.Aside from EMAC-related work, also incorporates Non-blocking DNS (#6751) and default network interface support (#6855).
Full list of PRs on that branch: https://github.com/ARMmbed/mbed-os/pulls?q=is%3Apr+base%3Afeature-emac+is%3Aclosed
When this is merged, support for existing native lwIP and old-style emac drivers will be lost - only updated drivers will remain supported. Platforms losing existing drivers are:
* RZ_A1XXSome test reconfiguration will be required to get this all green, both to adjust setup and in case any platforms losing Ethernet support due to lack of driver update.
Pull request type