-
Notifications
You must be signed in to change notification settings - Fork 17
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
feat(baremetal NIC): initial push for baremetal NIC #229
base: master
Are you sure you want to change the base?
Conversation
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.
First pass looks good! My old recommendation is to try and keep the changes to the existing net interfaces simple/unchanged, i.e., it's not clear what the rxflag is necessary to pass along.
src/native/Net.h
Outdated
@@ -230,7 +237,7 @@ class NetworkManager : public StaticSharedEbb<NetworkManager> { | |||
explicit Interface(EthernetDevice& ether_dev) | |||
: address_(nullptr), ether_dev_(ether_dev) {} | |||
|
|||
void Receive(std::unique_ptr<MutIOBuf> buf); | |||
void Receive(std::unique_ptr<MutIOBuf> buf, uint64_t rxflag); |
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.
If you set the default value for rxflag = 0 you can revert the changes made in VirtIONet.cc
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.
agreed
@@ -64,6 +64,7 @@ class IOBuf { | |||
} | |||
|
|||
void TrimEnd(size_t amount) { length_ -= amount; } | |||
void SetLength(size_t amount) { length_ = amount; } |
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.
I think TrimEnd() and Length() could be used to achieve the same behavior
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.
ok lemme check, i remember trying it, but will check again
void ReceiveUdp(Ipv4Header& ih, std::unique_ptr<MutIOBuf> buf, | ||
uint64_t rxflag = 0); | ||
void ReceiveTcp(const Ipv4Header& ih, std::unique_ptr<MutIOBuf> buf, | ||
uint64_t rxflag = 0); |
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.
What's the advantage of passing rxflag all the way up the network stack?
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.
its mainly for hardware checksumming? If the hardware checksums a type of packet, then it'll set a bit in rxflag, so we don't have to do it in network stack
e277f43
to
b013d09
Compare
Only works on Intel 82599 family based NICs
b013d09
to
f8a4188
Compare
Only works on Intel 82599 family based NICs
…o baremetalNIC
☔ The latest upstream changes (presumably d213abd) made this pull request unmergeable. Please resolve the merge conflicts. |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
…appening when user closes a connection twice.
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
… perf and statistic counters to IxgbeDriver, hijacked Ping messages to act as triggers to set up state
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
…as checksum offloading for packets less than MTU, which doesn't utilize the TSO offload feature, is still the original standard TCP pseudo checksum of src, dest ip addresses, TCP protocol, and length (tcp header+payload). However, for packets larger than the MTU, which requires enabling TSO, the TCP pseudo checksum is just src, dest ip address and TCP protocol, no length required. If this is not implemented correctly, you know it is a device problem as the packets won't even make it out onto wireshark.
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
… starting to add perf and other counters such as RAPL for counting power usage.
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
There were the following issues with your Pull Request
Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md This message was auto-generated by https://gitcop.com |
Only works on Intel 82599 family based NICs