-
-
Notifications
You must be signed in to change notification settings - Fork 171
SNP Integration Test: Improve Clarity #1621
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
base: main
Are you sure you want to change the base?
Conversation
ca3266b
to
e24e342
Compare
6c758f5
to
ff20426
Compare
FYI: I wouldn't count on interrupt status returning anything useful. I'm actually somewhat surprised to find this in the SNP spec (without much details what the expected behavior is). UEFI does not use interrupts (except timer) and handles devices in polling mode. So there is little reason for uefi drivers to configure device interrupt registers in the first place. |
56f24c9
to
ad4b06f
Compare
Interestingly, the interrupt status never shows that we can receive a packet. Buggy OVMF firmware?
This helps to identify the network interface in integration tests. So far, we also only use a single network device. In case there are more, the next device should have a similar MAC address, such as the last component being incremented by one.
@@ -186,13 +186,36 @@ impl SimpleNetwork { | |||
status.to_result_with_val(|| NonNull::new(tx_buf.cast())) | |||
} | |||
|
|||
/// Place a packet in the transmit queue of a network interface. | |||
/// Place a packet in the transmit queue of the network interface. |
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.
Could the changes in this file be moved to a separate PR? I'd like to review them in isolation from the test changes.
TL;DR: This adds more clarity to facilitate future debugging and improvements for #1617.
Wow, this was an unexpected major time sink. The problem here is that if
snp::test
runs beforepxe::test
,snp.receive()
receives an Ethernet ARP package rather than a Ethernet IPv4 packet.I tried two solutions:
I got non working, unfortunately. So instead, this adds more clarity to ease future debugging and improvements.
Relates to #1617 opened by @kraxel.
Checklist