Merge Longzhan's PR into build_aca to test in Jenkins. - #2
Open
pkommoju wants to merge 60 commits into
Open
Conversation
Pull latest master branch changes
…to deleted after added via ovs control vconn
…etter performance
…er to prevent deadlock
…tch_to_conn_map and OFController::remove_switch_from_conn_maps
Fixing potential deadlock when adding an OpenFlow Connection
Added .Finish call for gRPC server
* Changed ACA's openflow version from 1.3 to 1.0 * Added tunnel_id printout, and commented out some unused code * Try to make packet out to the bridge based on the of_connection_id * Changed more code to let packet out based on of_connection_i * Changed implementation for adding/removing switches in of_controller, in order to prevent deadlock * Try to make on-demand packet_out based on the connection_id, rather than bridge name * Added logs, in order to investigate why ofconnection dropped * Suspect removing switches with empty name causes the problem * Modifed arp_responder to avoid calling NCM * Added local map lookup * Initiate marl integration for packet-in stress testing * Move libfluid packet-in parsing also to async scheduler, to release message_callback full capacity of receiving packets * Break parse ARP job * Test setting specific worker thread number * Do not break parse job but set specific worker size This reverts commit 42716a1. * Try to make atomic counter for packet_in * Try to make atomic counter for packet_in * Try to make atomic counter for packet_in * Try to make atomic counter for packet_in * Try to make atomic counter for packet_in * Try to make atomic counter for packet_in * Added sleep 100 us in marl code when packet in * Added packet_out_counter, also made the counters global * Added packet_out_counter, also made the counters global * Print out both counters every 1 second * Commented out arp_recv and see if the bottleneck is in the on-demand engine * Changed packet_out_counter++ to the start of parse_packet, then return immediately * Changed packet_out_counter++ to the start of parse_packet, then return immediately * Change it to right inside the arp ether type * Change it to before arp ether type * Change it to before vlan ether type * Change it to before * Commented out ACA_LOG_INFOs on the packet_in to packet_out path * Confirm on_demand_engine is already fast * Put the count into the arp_recv * Put the count into the arp_recv * Added fmt library and sample fmt code * Set counter before sprintf to get a baseline for comparison * Set counter before sprintf to get a baseline for comparison * Set counter before sprintf to get a baseline for comparison * Set counter after 5 sprintf and string.append * Set counter after 5 sprintf and string.append * set counter after for loops * set counter after if statement * set counter before return * _serialize_arp_message isn't a bottleneck? * have to do it again with 4 switches in cbench * after first five sprintf and string.append * after for loops * before return * Try to rewrite _serialize_arp_message with fmt code * try to call condense format_to to fewer ones * comment out append to see if it takes a lot of time * Try to use FMT_COMPILE when calling format_to * do test with fmt * Check qps before packet out * let packet out go and test again * Comment out time recording and test again * put counter before is_found * put counter at the beginning of packet_out * add packet out counter to packet out * place counter in ofcontroller::packet_out * place counter in create_packet_out * place counter in create_packet_out * place counter in create_packet_out * place counter in create_packet_out * place counter in create_packet_out * place counter in create_packet_out * place counter in create_packet_out * place counter in create_packet_out * place counter in create_packet_out * testing without std::move * testing without std::move * remove lock * put counter after create_packet_out * put counter after send_packet_out * use marl to send packet out * added marl code to BaseOFConnection::send * Disabled marl scheduling for OFConnection * try to send flow_mod when receiving a packet_in * enabled send packet out again, and test if cbench's OFPT_VENDOR should also count * use marl to send flow_mod * test parse_packet with marl * Bring back gRPC client/server for testing * Reverted OF version from 1.0 to 1.3 * comment out set ports' vlan tag for testing * bring back adding getting ovs connections with bridge name * added logs to investigate why no ovs flows are set up * modified of message version * commented out logs and time calculations to speed up the gs processing * Try to use marl to update neighbor states * Try to use marl to manage the whole gRPC server, so that update neighbor state can use marl, too * Added waitGroup.wait() * Check what should be the size of the wait group * Check what should be the size of the wait group * Check what should be the size of the wait group * Check what should be the size of the wait group * Check what should be the size of the wait group * Check what should be the size of the wait group * Check what should be the size of the wait group * Check what should be the size of the wait group * Check what should be the size of the wait group * Check what should be the size of the wait group * Check what should be the size of the wait group * Check what should be the size of the wait group * Use neighbor_count as waitGroup count; also changed back to for each loop when updating neighbor states * try not to use defer() * add one in waitgroup when iter through 1 neighbor * Try to use barrier request/reply to check neighbor procecssing time * added endl to printout * Try to send barrier request at the 950k th neighbor creation * Changed to send barrier request at the 970k th neighbor creation * try to use marl to furthur schedule create l2 neighbor * try to use marl to schedule execute_openflow when create_l2_neighbor * comment out duplicated part * comment out duplicated part * comment out extra code * revert back changes * enable counter again * put second counter after assert revision number * put second counter after invalid argument checks * increment first counter before marl schedule * put second counter at the beginning of update_neighbor_state_workitem * Improve performance by reducing unnecessary syslogs * Use marl::schedule to process netowrk resource states * added waitgroup to marl::schedule * added marl::schedule to on-demand engine * bring back original _parse_arp_request, in order to test with NCM * add changes from futurewei-cloud#272 * Reverted ACA_ARP_Responder::_serialize_arp_message * Cleaned up code * Cleaned up more code * Changed multiple logs from INFO to DEBUG * Add marl dependencies in cmake as well as machine init script * Fix marl dependency location in test cmake * Fix docker file marl dependency * Fix spaces * removed fmt library related code * corrected comment about OpenFlow Version * Tried to fix the memory leak * fixed blank lines and identation * Always restart AlcorControlAgent with new build, and set default debug flag to false in aca-machine-init Co-authored-by: Longzhang Fu <lfu@futurewei.com>
…le parse packet in it (futurewei-cloud#277)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.