-
Notifications
You must be signed in to change notification settings - Fork 171
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
R3.0 #89
base: master
Are you sure you want to change the base?
R3.0 #89
Commits on Feb 18, 2016
-
Adding R3.0 branch to CI Closes-Bug: 1547034
Change-Id: I7a24151be54ccc2c3c9505ea7afb8437752ef25f
Configuration menu - View commit details
-
Copy full SHA for 8e61639 - Browse repository at this point
Copy the full SHA 8e61639View commit details
Commits on Feb 19, 2016
-
Vrouter to generate EEXIST error appropriately
Vrouter to generate EEXIST error when flow add request failed due to race between agent and datapath, where flow entry was already created due to packet trap Closes-Bug: 1547501 Change-Id: I0d2073622b06998dd5778fb94749958afc09bac0 (cherry picked from commit c17b4d4)
Prabhjot Singh Sethi committedFeb 19, 2016 Configuration menu - View commit details
-
Copy full SHA for b679020 - Browse repository at this point
Copy the full SHA b679020View commit details
Commits on Feb 22, 2016
-
DPDK: fix (again) hashing of fragmented packets
We can not hash L4 ports as fragments other than the first have no L4 headers. In result fragments of the same packets may have been distributed onto different lcores and potentially be routed out of order. The fix was originally committed by Michal Dubiel (commit d59ca66) For a reason the fix was dropped in the commit 1056396 Change-Id: Iac607e6e14a139a0c015eeb5c9ff8c3de04854c6 Closes-Bug: #1474432
Configuration menu - View commit details
-
Copy full SHA for 38385ba - Browse repository at this point
Copy the full SHA 38385baView commit details
Commits on Feb 23, 2016
-
Vrouter to return error for invalid flow op
If a flow operation is requested for an index which is not active, vrouter should return an ENOENT error for such operation Closes-Bug: 1548678 Change-Id: I42bbd58f41a868b1ce630046ae40e911df0d9491 (cherry picked from commit 1cf3761)
Prabhjot Singh Sethi committedFeb 23, 2016 Configuration menu - View commit details
-
Copy full SHA for 99763a1 - Browse repository at this point
Copy the full SHA 99763a1View commit details -
Do not consider evicted flows as active flow in flow utility
Change-Id: Ia9ae864af98a645b60c5880db29ba8ff1b3c494f Closes-Bug: #1517665
Configuration menu - View commit details
-
Copy full SHA for 4d01316 - Browse repository at this point
Copy the full SHA 4d01316View commit details -
DPDK: fix UDP fragments handling
The root cause is mbuf starvation due to lots of fragments. The mbufs get stuck in the fragment assembler. To fix the issue we disable fragment assembler allocations if the number of allocated fragment elements is greater than 1024. This basically temporarily drop of out of order fragments. + Fix memory allocation statistics. Change-Id: Ife775ac3073a9c5981672bd64952661c28380a7c Closes-bug: #1545798
Configuration menu - View commit details
-
Copy full SHA for c418fa4 - Browse repository at this point
Copy the full SHA c418fa4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8759e5d - Browse repository at this point
Copy the full SHA 8759e5dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5ae73c8 - Browse repository at this point
Copy the full SHA 5ae73c8View commit details
Commits on Feb 24, 2016
-
List flows based on match criteria
Add a new option "--match" to match flows based on certain criteria. With the match option, one will be able to match based on source ip or destination ip (with or without ports) or vrf or protocol or any of them together with any other of them. e.g.: --match 1.1.1.1:20 --match "1.1.1.1:20,2.2.2.2:22" --match "[fe80::225:90ff:fec3:afa]:22 --match "10.204.217.10:56910 & vrf 0 & proto tcp" --match "10.204.217.10:56910,169.254.0.3:22 & vrf 0 & proto tcp" Change-Id: Id70e6d60950babe44612e6aded036c5d1bec6f92 Partial-BUG: #1513001
Configuration menu - View commit details
-
Copy full SHA for d40be29 - Browse repository at this point
Copy the full SHA d40be29View commit details -
Configuration menu - View commit details
-
Copy full SHA for 81476e1 - Browse repository at this point
Copy the full SHA 81476e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for c3a9f52 - Browse repository at this point
Copy the full SHA c3a9f52View commit details
Commits on Feb 25, 2016
-
Insufficient space in external memory buffer is not actually an error for the vRouter/DPDK, so we supress those messages by using -DSANDESH_QUIET. Change-Id: I5bc0a51f7c4659f2733a72e9b45322d117265a87 Closes-bug: #1546291
Configuration menu - View commit details
-
Copy full SHA for 1db4e11 - Browse repository at this point
Copy the full SHA 1db4e11View commit details -
Using the correct FMD and setting pkt_type correctly for mirrored pac…
…kets If port mirroring is enabled, cloned packet is subjected to mirroring using the original packet's forwarding metadata. If mirroring code changes the metadata content, original packet will be forwarded as per the changed fmd and results in wrong forwarding. In the current case, mirroring is to a VM in different VN (hence new VRF) and mirroring code is modifying the fmd's dvrf to new VRF. The original ARP packet's L2 and L3 looksups are happening on the modified VRF resulting in ARP getting dropped. Also the type of packet is identified using vr_pkt_type() after packet is mirrored. This is resulting in wrong pkt_type being used for mirrored packet hence the source IP packet the mirrored packet is not correctly computed. As a fix, new FMD is used for mirrored packet and packet type is identified before mirroring itself. Change-Id: I1fbe7d7e83c7e66c3287b8082444483578117d14 closes-bug: #1549727
Configuration menu - View commit details
-
Copy full SHA for 747ec6e - Browse repository at this point
Copy the full SHA 747ec6eView commit details
Commits on Feb 26, 2016
-
Reduce the size of the RSS mempool to improve performance.
The number of TX/RX descriptors are also decreased to account for this. Change-Id: Ib29da97e229fbf6a77644e449d2a81281f438058 Closes-Bug: 1550073
Configuration menu - View commit details
-
Copy full SHA for c17b8fe - Browse repository at this point
Copy the full SHA c17b8feView commit details -
Merge "Reduce the size of the RSS mempool to improve performance. The…
… number of TX/RX descriptors are also decreased to account for this." into R3.0
Configuration menu - View commit details
-
Copy full SHA for 16c05b7 - Browse repository at this point
Copy the full SHA 16c05b7View commit details -
Dont mirror the same packet again
If mirroring is enabled on analyzing VM's port itself, one copy of the original packet gets mirrored to that port. But this mirrored packet should not be mirroed again. Right now without verifying whether the packet is mirrored or not, it is attempted for mirroring again. When a packet is mirrored it is marked with flag VP_FLAG_FROM_DP. If this flag is set it is not mirrored again. Change-Id: Ie4cca916945878b77bc4db7666992f3933db3e13 closes-bug: #1549761
Configuration menu - View commit details
-
Copy full SHA for c1c472c - Browse repository at this point
Copy the full SHA c1c472cView commit details -
Merge "Using the correct FMD and setting pkt_type correctly for mirro…
…red packets" into R3.0
Configuration menu - View commit details
-
Copy full SHA for c959ff9 - Browse repository at this point
Copy the full SHA c959ff9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 01dbe86 - Browse repository at this point
Copy the full SHA 01dbe86View commit details
Commits on Feb 27, 2016
-
Keeping ingres vif id in L2 header for post GRO processing
Currently the L2 header used for both L2 and L3 GRO processing is only next hop id. Post GRO, the nexthop is retrieved from this id and packet is subjected to this nexthop for further processing. The ingress interface filled in the packet is nh_dev of this nexthop. This is resulting in ingress interface as Tap interface though packet acttually ingressed on Fabric interface. This can potentially lead to issues in the packet's further processing as Tap interface is not the real ingress interface. As a fix, the ingress interface id is also pushed as L2 header. Change-Id: I6fbe055fff7da4c957fde29d132b56ea19bd2f3f closes-bug: #1550632
Configuration menu - View commit details
-
Copy full SHA for 4da87fc - Browse repository at this point
Copy the full SHA 4da87fcView commit details -
Use innerpacket's destip as source ip while doing Tx Port mirroring
When Transmit port mirroring is enabled, packet received on Fabric interface is right now mirrored using the source IP of the inner packet. This results in RPF failure on Analyzer VM's compute node because the compute node which is doing the port mirroring is using other compute node's VM IP. As a fix, if mirroring is Tax mirroring, rather using inner packets source ip, dest ip is used, so that Analyzer VM's RPF will not have any issues Change-Id: I5beaa0dd0cc3c886a1e77f244c8003595ed348e2 closes-bug: #1550312
Configuration menu - View commit details
-
Copy full SHA for ce86dd4 - Browse repository at this point
Copy the full SHA ce86dd4View commit details -
Disable Eviction of flow in Vrouter
Vrouter will track tcp flags, but will not evict the flow entry once the session is closed and let vrouter agent look at the flag to delete the flow eventually. This is required till vrouter agent handles evict event in a more stable way Partial-Bug: 1550759 Change-Id: Ic7074442b22fc2c11362274e4e390654f3f2400a
Prabhjot Singh Sethi committedFeb 27, 2016 Configuration menu - View commit details
-
Copy full SHA for d44296e - Browse repository at this point
Copy the full SHA d44296eView commit details
Commits on Feb 28, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 1696925 - Browse repository at this point
Copy the full SHA 1696925View commit details
Commits on Feb 29, 2016
-
DPDK: reset virtio queue on stop
We call vr_dpdk_virtio_stop() from uvhm_client_munmap() which in turn is called from vr_uvh_nl_vif_del_handler(). These are as tiny as possible changes based on the the abandoned refactoring commit: https://review.opencontrail.org/#/c/17178/ Closes-bug: #1551093 Change-Id: I4653601635dbb7f29d7af9ce15a18193904f583f
Configuration menu - View commit details
-
Copy full SHA for 2bad6da - Browse repository at this point
Copy the full SHA 2bad6daView commit details -
Post GRO, label in fmd can't be used to check whether the packet
was tunneled or not Once the packet is submitted for GRO, all datapath information is lost. Post GRO, only values that are saved in the packet are the vif and the nexthop. vif is a recent addition to the saved information that helped us to identify which interface the packet came from originally. Once the vif value was set properly, the logic that checked whether the packet should be trapped to agent or not based on the presence of label (basically fabric arp responses should be trapped or not), misbehaved since label information is not saved pre-GRO and hence not available in the metadata post GRO. For now, fix the specific logic by checking whether the egress vrf is different from the ingress vrf, which will be the case since physical interface vrf will not be the same as vm's vrf. Change-Id: Iba000889039bc8a5020fc11a462ba1b1a68ce1c8 Closes-BUG: #1551382
Configuration menu - View commit details
-
Copy full SHA for e5e8b85 - Browse repository at this point
Copy the full SHA e5e8b85View commit details
Commits on Mar 2, 2016
-
Do not reuse forwarding metadata post mirroring
A mirror action needs its own forwarding metadata since the forwarding parameeters that are used for mirroring will be different from those that are used for packet forwarding. In this particular case, the vrf to which the packets are mirrored are different from the vrf to which packets need to be classified, and hence the packets were dropped in the flow module with no source route as the drop reason. Change-Id: I21930818a5cdec560818acb79f671ce29ac8bc85 Closes-BUG: #1552101
Configuration menu - View commit details
-
Copy full SHA for 356bc69 - Browse repository at this point
Copy the full SHA 356bc69View commit details
Commits on Mar 3, 2016
-
Modify hentry flags before adding to free list
Currently when a flow entry is deleted, the corresponding hash entry is kept at the head of the free list and after successfully inserting into the list the entry's flags are reset. If any other core is attempting to fetch a free entry, there is a likely chance that just added entry will be given as free entry before the flags are reset as this entry is at the head of the list. Because of this there is a race condition for setting the flags between deletion of entry and additin of entry. If deletion overwrites the addition flags, the Valid flags gets overwritten. Because of this the entry would not be in free list but still would not be considered a valid entry. Searching this entry by index fails as this is not a valid entry. As a fix, the flags while inserting the entry to free list are modified before inserting so that there would not be any race condition. Change-Id: I67b1077e75a8a9f4ca5ddcfe3a7513061fd20681 closes-bug: #1552544
Configuration menu - View commit details
-
Copy full SHA for 4b84e39 - Browse repository at this point
Copy the full SHA 4b84e39View commit details
Commits on Mar 9, 2016
-
DPDK: fix high pkt drop for 16 lcores
I have no hardware with 16 cores, but I guess with lots of lcores assigned to vRouter/DPDK some of them might get sleep due to no RX queues assigned. Change-Id: I7e37e14ef9aebfc3613ef5e908091ee35093d1bb Closes-bug: #1505472
Configuration menu - View commit details
-
Copy full SHA for c40b395 - Browse repository at this point
Copy the full SHA c40b395View commit details
Commits on Mar 14, 2016
-
Drop ICMP error packets for ICMP errors
In case of ICMP error packets for ICMP errors, we were not initializing flow key and trying to form a flow out of that key, resulting in wrong key length and corrupted flow entry(s). We will drop such packets. Change-Id: Idae46a7e128482ad89da8b5bd1bd0ef6b17ef28e Closes-BUG: #1556363
Configuration menu - View commit details
-
Copy full SHA for a2e6648 - Browse repository at this point
Copy the full SHA a2e6648View commit details -
Do not swap ports for an ICMP packet inside an ICMP error
For an ICMP packet, the port numbers remain the same in either direction i.e.: source port remains the same for both foward and the reverse flows as does the destination port. Hence, we should not be swapping ports in calculating the flow key while trying to tag an ICMP error packet to a flow set up for the original stream. Change-Id: Ic5df8aec5f1009441aefd3d177568d55f3cb0d2c Closes-BUG: #1554236
Configuration menu - View commit details
-
Copy full SHA for 6150505 - Browse repository at this point
Copy the full SHA 6150505View commit details
Commits on Mar 15, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 3dd9596 - Browse repository at this point
Copy the full SHA 3dd9596View commit details -
Configuration menu - View commit details
-
Copy full SHA for dcc9184 - Browse repository at this point
Copy the full SHA dcc9184View commit details
Commits on Mar 16, 2016
-
A '--get' switch for the 'rt' to match a particular route and dump it. Currently, only for inet and inet6 routes. Change-Id: I3b53dda635f4f4af5b7f79ddf47e14313f372f81 Partial-BUG: #1548757 Support GET for L2 routes Support 'GET' operation for a specific route in the vRouter bridge table too. Also, support giving a specific prefix length to the route and return a match based on that specific prefix. Change-Id: I93980925e70f45482c372ba3beeca8bfbd3028b2 Closes-BUG: #1548757
Configuration menu - View commit details
-
Copy full SHA for 91e2d3a - Browse repository at this point
Copy the full SHA 91e2d3aView commit details
Commits on Mar 18, 2016
-
Add flow gen id info to agent header
Adding flow gen id info to agent header for vrouter agent to identify the latest transistion Partial-Bug: 1554423 Change-Id: I0c0d0ca5b5a5ee2edd1ed5c7a45852cbfd7663b2 (cherry picked from commit b81f978)
Prabhjot Singh Sethi committedMar 18, 2016 Configuration menu - View commit details
-
Copy full SHA for 712de81 - Browse repository at this point
Copy the full SHA 712de81View commit details
Commits on Mar 21, 2016
-
DPDK: increase max packet size from 9160B to 9kB.
Packet size is passed to the ixgbe driver as a buffer size. Then it is calculated to get the buffer size in kilobytes using right bitshift by 10. 9160 >> 10 is 8. This leads to truncating incoming 9kB frames to 8kB. Changing packet size to integer multiple of 1kB solves the problem. Change-Id: I202c7f9430c5952b5e89b1ef9fff101ed36bfe82 Closes-bug: #1547782
Configuration menu - View commit details
-
Copy full SHA for aa66037 - Browse repository at this point
Copy the full SHA aa66037View commit details
Commits on Mar 24, 2016
-
Pass correct forwarding metadata to mirroring
Post copying the metadata to the one supposed to be used for mirroring and modifying the vrf value in it, we are not passing the copy to the mirror. Change-Id: Id3cbc5dcc296fc005d06a9aa797339c1cc4a10cc Closes-BUG: #1552101
Configuration menu - View commit details
-
Copy full SHA for d3d0e98 - Browse repository at this point
Copy the full SHA d3d0e98View commit details -
Configuration menu - View commit details
-
Copy full SHA for 93dc4f6 - Browse repository at this point
Copy the full SHA 93dc4f6View commit details -
Fix memory corruption at the time of unloading
Every alloc and free of memory in vRouter is accounted for by the memory statistics subsystem of vRouter. While unloading the module, we are freeing malloc statistics memory before packet drop statstics memory is freed. While we do update the memory statistics only if the memory statistics block pointer is not null, we do not seem to be zeroing the pointer that holds the address of the memory block post release. Hence, reverse the order of release and NULL-ify the memory statistics pointer. Also, unregister the net device notifier before going ahead and freeing the memory that the vhost driver keeps. If the notifier is not unregistered first, it can potentially access freed memory that vhost driver maintains. Change-Id: I79c4cdec4f0501e61abf38698e44e461a90c370b Closes-BUG: #1561589
Configuration menu - View commit details
-
Copy full SHA for 8337190 - Browse repository at this point
Copy the full SHA 8337190View commit details -
DPDK: fix incorrect PCI address passed from the Agent
Change-Id: Ie64707d76fbbe3566ec3b6df5eb0be61ca09bde2 Closes-bug: #1561634
Configuration menu - View commit details
-
Copy full SHA for da1306d - Browse repository at this point
Copy the full SHA da1306dView commit details -
DPDK: set MAC address passed by the Agent to the NIC
On some hardware (e100e, virtual functions, etc) the MAC is random, so we check if vif and NIC MACs are match and set the NIC MAC. Change-Id: Ifbb20b534c49f3f618e5a729f8a03b0a200bf05b Closes-bug: #1561636
Configuration menu - View commit details
-
Copy full SHA for 59f39f7 - Browse repository at this point
Copy the full SHA 59f39f7View commit details
Commits on Mar 25, 2016
-
Configuration menu - View commit details
-
Copy full SHA for fbcf0c9 - Browse repository at this point
Copy the full SHA fbcf0c9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2be1a03 - Browse repository at this point
Copy the full SHA 2be1a03View commit details
Commits on Mar 27, 2016
-
Configuration menu - View commit details
-
Copy full SHA for a752cad - Browse repository at this point
Copy the full SHA a752cadView commit details -
Configuration menu - View commit details
-
Copy full SHA for 37b5eec - Browse repository at this point
Copy the full SHA 37b5eecView commit details
Commits on Mar 31, 2016
-
Set skb network header for non-tunneled packets
When somebody does a tcpdump or an equivalent operation of listening on an interface for all protocol packets, linux kernel prints protocol xyz is buggy if the network header is positioned at an offset that is not sane, for e.g.: network header offset is lesser than the data offset (which is where the data starts). vRouter is not setting network header offsets for packets that don't undergo GRO or for non-tunnel packets. If such packets egress an interface and if a tcpdump like application is running on that interface, then we will see this issue. Set skb network header to packet network header for such packets Change-Id: I82f7550722798e53c94092788b5135603f6045c8 Closes-BUG: #1564242
Configuration menu - View commit details
-
Copy full SHA for 2ddf88f - Browse repository at this point
Copy the full SHA 2ddf88fView commit details -
Update the less specific route node with requested values
It has been observed that if the less specific route is deleted first and then all the more specific routes, the less specific route doesn't go away. For e.g.: if 1.1.1.0/24 is deleted first and later 1.1.1.1/32 in a table where there are no other routes, 1.1.1.0/24 remains in the table. When we delete a non leaf node, if it is a bucket we do not update the prefix length, flags and label values. If these values do not match with those of other nodes in the same bucket, then the bucket will remain forever. Hence, update the node with the values in the request before traversing the tree down. Change-Id: I71778a83093a04c462b40e6c7e05b1d993f3373e Closes-BUG: #1563734
Configuration menu - View commit details
-
Copy full SHA for ec6e924 - Browse repository at this point
Copy the full SHA ec6e924View commit details
Commits on Apr 1, 2016
-
Configuration menu - View commit details
-
Copy full SHA for e019ca5 - Browse repository at this point
Copy the full SHA e019ca5View commit details
Commits on Apr 7, 2016
-
DPDK: dedicate an lcore for SR-IOV VF IO Edit
The goal is to have one CPU core dedicated to doing TX/RX from the NIC (and no vRouter processing, handling packets from VM etc. on this one core). Change-Id: Id834ce950fbb312a79f837a85d3fe1b85c89f275 Closes-bug: #1567470
Configuration menu - View commit details
-
Copy full SHA for f635e2e - Browse repository at this point
Copy the full SHA f635e2eView commit details
Commits on Apr 8, 2016
-
Use alternate APIs for some of the kernel calls
Change-Id: I2db021e58e8912bd55684cacef7e506974425cfb Partial-BUG: #1559016
Configuration menu - View commit details
-
Copy full SHA for 77ac5a3 - Browse repository at this point
Copy the full SHA 77ac5a3View commit details -
DPDK: Enable Vlan offload in bonded interfaces
In case of bonding, the VLAN offloading was not enabled in the hardware even though it was enabled in the vif. As a result, the DPDK used to get VLAN tagged packets and was not stripping resulting in breakage of the data path. The patch fixes the same. Change-Id: I10a8b1eb08065b10146a64a99b295f0b28e73120 Closes-Bug: 1565124
Configuration menu - View commit details
-
Copy full SHA for 995596d - Browse repository at this point
Copy the full SHA 995596dView commit details
Commits on Apr 11, 2016
-
- Enable vrouter TCP flow Eviction - return EBADF if gen-id mismatch, even if the key is same - returning EFAULT for cases if gen-id matches but key doesnot, this case ideally should not happen but in case it does vrouter-agent will log an Error and recover Closes-Bug: 1554423 Change-Id: I14b898708f132b2e67504cb2afe021502730b62a (cherry picked from commit a71739a)
Prabhjot Singh Sethi committedApr 11, 2016 Configuration menu - View commit details
-
Copy full SHA for 6f0972a - Browse repository at this point
Copy the full SHA 6f0972aView commit details -
Adding new short flow drop reason(SAME_FLOW_RFLOW).
Change-Id: I31e17f9229e675e1dfff0f34073b4c21c0c8d855 Partial-bug: 1556290
Configuration menu - View commit details
-
Copy full SHA for ead9a0e - Browse repository at this point
Copy the full SHA ead9a0eView commit details
Commits on Apr 12, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 61241c0 - Browse repository at this point
Copy the full SHA 61241c0View commit details -
DPDK: fix NetLink thread freeze
When the pkt0 interface is getting a lot of traffic as a result of trapping packets to agent. When a large number of packets are trapped in this manner, the NetLink thread freezes (i.e. no commands like vif/nh can be run as they just hang). Change-Id: I18db6d5cc96a812eab61609f8a369728a315eaa7 Closes-bug: #1569441
Configuration menu - View commit details
-
Copy full SHA for f193d55 - Browse repository at this point
Copy the full SHA f193d55View commit details
Commits on Apr 13, 2016
-
Replace cpu_sibling_mask() with topology_sibling_cpumask()
Closes=Bug: #1555511 Change-Id: I84db0b0fb853f049aeddb8bbdba67fc9f54eb59d
Configuration menu - View commit details
-
Copy full SHA for 7101cab - Browse repository at this point
Copy the full SHA 7101cabView commit details -
Create a new flow if a packet hits a delete marked flow
When Agent deletes a flow, the flow entry is not immediately deleted in Vrouter. Vrouter uses work queues and rcu callbacks to streamline the deletion. After these asynchronous callbacks, flow entry is treated as deleted. If there are any packets hitting this flow entry before marking as "not active" those packets are dropped. On a loaded system with huge number of flows, these call backs take a considerable time(in the worst case as much as 30 ms). Packets hitting this flow entry will be dropped for all this time. To avoid this issue, when Agent deletes the flow entry, entry is "marked deleted". A delete marked entry is no more treated as active entry, hence flow lookup does not return this entry. As a result, a new flow entry gets created. All the subsequent packets hit the new entry. "flow" utility displays this particular entry as "Dm". Change-Id: I0e150bbeb4b3fe3bf3fa1f367e074586363786f2 closes-bug: #1569786
Configuration menu - View commit details
-
Copy full SHA for 0f8fb1c - Browse repository at this point
Copy the full SHA 0f8fb1cView commit details -
Display used flow table count and bridge table count in "vrouter" uti…
…lity The uses flow table count and bridge table count is not displayed as part of any utility. "vrouter" utility is extended to display this count. This can be further extended to display all the Vrouter table count like mpls, nh etc. As of now, bridge table and flow table count along with its over flow table is displayed as part of "vrouter --info" Change-Id: I2e54fb8e4fd89a15ecafdf5551f022448728a5f3 closes-bug: #1569791
Configuration menu - View commit details
-
Copy full SHA for 830fc5b - Browse repository at this point
Copy the full SHA 830fc5bView commit details
Commits on Apr 14, 2016
-
Treat ARP requestsas VM's requests if VRF is different when compared …
…to VIF's VRF This issue is valid only for unicast ARP request packets. As multicast ARP request packets are always handled in Multicast Composite nexthop and as they are never subjected to GRO, this issue is not observed for multicast ARP packets. When an unicast ARP request is received on Fabric interface it is treated as ARP reqest for VM if there is a label attached to it. Due to the changes in GRO, post GRO, the label is not going to be present in fmd. So ARP packets are treated as if they are meant for fabric network. This is resulting in unicast ARP requests never being answered. As a fix, if the VRF of fmd is different from VIF's VRF, these packets are treated as VM's ARP packets. Change-Id: I013b83c38642697c81e32460be936154e42a067e closes-bug: #1570180
Configuration menu - View commit details
-
Copy full SHA for 72e7649 - Browse repository at this point
Copy the full SHA 72e7649View commit details
Commits on Apr 15, 2016
-
Match source and destination when both are given
Change-Id: Id75ee6dc4f739f78073e72fae08bbbcffcde1618 Partial-BUG: #1513001
Configuration menu - View commit details
-
Copy full SHA for 4af463f - Browse repository at this point
Copy the full SHA 4af463fView commit details -
Configuration menu - View commit details
-
Copy full SHA for ba7a510 - Browse repository at this point
Copy the full SHA ba7a510View commit details -
DPDK: fix low performance of SR-IOV VF IO lcore
Intel 82599 NIC hash just src/dst IPs for UDP traffic, not the src/dst ports. So we force vRouter to recalculate the hashes. Change-Id: I1b330d605cb0c0401d2f45578535740dcc49b4c7 Closes-bug: #1570907
Configuration menu - View commit details
-
Copy full SHA for 13bf183 - Browse repository at this point
Copy the full SHA 13bf183View commit details -
Change-Id: I345f772a37a20c2ec344815f73e11d383a1c48cd Partial-bug: #1570918
Configuration menu - View commit details
-
Copy full SHA for fafe8b6 - Browse repository at this point
Copy the full SHA fafe8b6View commit details
Commits on Apr 16, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 2a7d69c - Browse repository at this point
Copy the full SHA 2a7d69cView commit details
Commits on Apr 18, 2016
-
Configuration menu - View commit details
-
Copy full SHA for e14f021 - Browse repository at this point
Copy the full SHA e14f021View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1afb32d - Browse repository at this point
Copy the full SHA 1afb32dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7f26bc1 - Browse repository at this point
Copy the full SHA 7f26bc1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 005e1d5 - Browse repository at this point
Copy the full SHA 005e1d5View commit details -
Configuration menu - View commit details
-
Copy full SHA for c6b154f - Browse repository at this point
Copy the full SHA c6b154fView commit details
Commits on Apr 19, 2016
-
Print port mirroring index in VIF utility
When the Tx or Rx port mirroring is enabled on the port, vif utility is not printing the mirror index. For debugging purpose it is better to print the index. VIF utility is modified to print the index if port mirroring is enabled Change-Id: I0714b0dfb2bfb8c0044ab7dad7d953f6995aaeea closes-bug: #1571950
Configuration menu - View commit details
-
Copy full SHA for f411dc1 - Browse repository at this point
Copy the full SHA f411dc1View commit details
Commits on Apr 20, 2016
-
Merge "Treat ARP requestsas VM's requests if VRF is different when co…
…mpared to VIF's VRF" into R3.0
Configuration menu - View commit details
-
Copy full SHA for 855510c - Browse repository at this point
Copy the full SHA 855510cView commit details -
Merge "Display used flow table count and bridge table count in "vrout…
…er" utility" into R3.0
Configuration menu - View commit details
-
Copy full SHA for 28284f4 - Browse repository at this point
Copy the full SHA 28284f4View commit details -
Dont delete BGP as a service port once set
Right now the BGP As A Service uses the same methodlogy as Link local services and sets up the flow with link local flag. Once this flag is set the destination port is added to a bit map by Vrouter and uses when the packet arrives on Fabric to subject it to Flow. If the flag is removed from the Flow entry, the port is removed from Bitmap. This mechanism has a problem if multiple flows use the same destination port with Link Local flag. Removing the flag from one flow removes the port from bitmap and because of this packets belonging to other flow never gets subjected to flow processing as the bitmap does not have the port any more. As a temporary fix, a new flag is introduced in flow entry. When this flag is set, the port is added to bitmap and is never removed from bitmap even if the flag is removed from flow entry. This way, even if multiple flows use the same port there would not be any issues. This fix would be revoked once a new messaging comes between Agent and Vrouter. partial-bug: #1551576 Change-Id: I0474a91c3d1275d542f3e4d2ae11bc15f62cdbcf
Configuration menu - View commit details
-
Copy full SHA for a3aa608 - Browse repository at this point
Copy the full SHA a3aa608View commit details
Commits on Apr 22, 2016
-
Incasing the overflow table size of Flow and Bridge tables
Currently the overflow table sizes of flow and bridge are kept at 8k and 4k respectively as constant, irrespective of the main flow table size. Now this is changed to 20% of the main table. If user specifies over flow entries as module parameter, the value is untouched and left as is. If user specifies only the main table entries, then over flow table entries are again calculated as 20% of main table. While doing the calculation, it is adjusted to upper bound 1k. Change-Id: I45bb463013f850824af050ef9fb6d86118569f52 closes-bug: #1573381
Configuration menu - View commit details
-
Copy full SHA for 55a87d4 - Browse repository at this point
Copy the full SHA 55a87d4View commit details -
Configuration menu - View commit details
-
Copy full SHA for a1b0753 - Browse repository at this point
Copy the full SHA a1b0753View commit details
Commits on Apr 26, 2016
-
DPDK: vhost jumbo frame support
When we set MTU of vhost0, the same should be applied to the vif of PMD But the existing check was not allowing the same. Removing it. Change-Id: I1dc0bb529f9b6a84830d7ed8a73d7d8a286b3c2f Closes-bug: 1491680
Configuration menu - View commit details
-
Copy full SHA for c5cbb52 - Browse repository at this point
Copy the full SHA c5cbb52View commit details
Commits on Apr 27, 2016
-
Configuration menu - View commit details
-
Copy full SHA for b9acc14 - Browse repository at this point
Copy the full SHA b9acc14View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2810d11 - Browse repository at this point
Copy the full SHA 2810d11View commit details
Commits on Apr 28, 2016
-
DPDK: check PMD name suffix to detect SR-IOV VF
Change-Id: I58932fe80739414f96c0918de279965fac3d30c3 Closes-bug: #1567470
Configuration menu - View commit details
-
Copy full SHA for fb4c602 - Browse repository at this point
Copy the full SHA fb4c602View commit details
Commits on Apr 29, 2016
-
Before initiating eviction, wait for the reverse flow to move from
HOLD If the reverse flow action is HOLD, it is possible that we might not flush the packets that are in the hold queue when we do eviction. There is also an unidentified case where such flows remain in the table in the eviction marked state. Also, free the vrouter operation request structure once the request is done. Change-Id: I75d54367c7f7a3b32c3a09332be4f01a64e06d2a Partial-BUG: #1570203
Configuration menu - View commit details
-
Copy full SHA for 8e7127d - Browse repository at this point
Copy the full SHA 8e7127dView commit details -
Dont treat all FFFF checksum packets as DIAG packets
Currently, in the receiving Vrouter, if the checksum of the UDP packets is FFFF, it is treated as DIAG packets. But there can be some UDP packets whose checksum can be FFFF. These should not be treated as DIAG packets. To achieve this, DIAG packets are treated like below. Agent ensures that checksum of DIAG packets is not FFFF, but stores FFFF as checksum in UDP header. In the receiving Vrouter if UDP's checksum is seen as FFFF, checksum is validated again to verify whether that is correct checksum or not. If that is a wrong checksum, it would be marked as DIAG packet. If right checksum, it would be processed as any other regular packet. Also incase of MplsoUDP encapsulation, even if the configuration is to calculate the outer UDP checksum, if DIAG packet, the outer UDP checksum is not computed. This ensures that,on the receiving side, if checksum is validated by NIC, we will not have to compute the checksum for the inner packet once again. To ensure that there are not transmit errors, Agent calcualtes the checksum in the payload and validates it after receiving. Change-Id: Ie5f88deeea70e15aefda4b9dce49ccc48df3f117 closes-bug: #1576506
Configuration menu - View commit details
-
Copy full SHA for 9e3bdfc - Browse repository at this point
Copy the full SHA 9e3bdfcView commit details -
Put global PMD stats to lcore 0. Change-Id: Ic2956676204277aacf06e5dc244b4726c9d0762b Closes-bug: #1567470
Configuration menu - View commit details
-
Copy full SHA for 00114b5 - Browse repository at this point
Copy the full SHA 00114b5View commit details
Commits on May 1, 2016
-
Set size of overflow table early during vrouter-dpdk startup.
Change-Id: I5c23af5c9963972599982549568da9432ac42469 Closes-Bug: 1577097
Configuration menu - View commit details
-
Copy full SHA for 0db441a - Browse repository at this point
Copy the full SHA 0db441aView commit details
Commits on May 2, 2016
-
----- whenever the flow entry is getting synced to the vrouter, by the that time mirror entry dependency is not resolved. And we try to access that miror entry causes this crash Fix: --- Added Timer based trigger to Sync the flow entry to vrouter. If the mirror entry is not present at and analyzer attached, flow_entry will be enqueued.and based on timer trigger will revesit the queue, And update the Ksync entry, will retry for 4 attempts still if mirror entry is not present will mark the flow to short flow. for this in the vrouter module short flow reason is been added. Change-Id: I3d4e3fb0dfc54e76588c6c1b4a6fb1f9abc19a1e partial-bug: #1564239 (cherry picked from commit 26a7a71)
Configuration menu - View commit details
-
Copy full SHA for de94059 - Browse repository at this point
Copy the full SHA de94059View commit details
Commits on May 3, 2016
-
Merge "Issue: ----- whenever the flow entry is getting synced to the …
…vrouter, by the that time mirror entry dependency is not resolved. And we try to access that miror entry causes this crash Fix: --- Added Timer based trigger to Sync the flow entry to vrouter. If the mirror entry is not present at and analyzer attached, flow_entry will be enqueued.and based on timer trigger will revesit the queue, And update the Ksync entry, will retry for 4 attempts still if mirror entry is not present will mark the flow to short flow. for this in the vrouter module short flow reason is been added." into R3.0
Configuration menu - View commit details
-
Copy full SHA for b4034ec - Browse repository at this point
Copy the full SHA b4034ecView commit details
Commits on May 4, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 9cf435f - Browse repository at this point
Copy the full SHA 9cf435fView commit details
Commits on May 6, 2016
-
DPDK: Set MTU of bonded interfaces as one of the slave's MTU in rte_e…
…th_dev structure Change-Id: I2a8c084b8f434bf2ad255bbea0784f6fff78a253 Closes-Bug: 1579243
Configuration menu - View commit details
-
Copy full SHA for fc830f2 - Browse repository at this point
Copy the full SHA fc830f2View commit details
Commits on May 8, 2016
-
Merge "Before initiating eviction, wait for the reverse flow to move …
…from HOLD" into R3.0
Configuration menu - View commit details
-
Copy full SHA for b2d164c - Browse repository at this point
Copy the full SHA b2d164cView commit details
Commits on May 13, 2016
-
Do not allow agent to modify a "NEW" flow
The "NEW" flag is set whenever a flow becomes active and is in the transient state. If agent tries to modify the entry in that state, a possibility because of reuse of an entry due to eviction, a condition could happen where the flags used by datapath could come from the flags set by agent, more specifically the Modified flag, and thus be in a state where nothing can be done in the entry. Hence, prevent agent from acting upon NEW flows. Change-Id: I017fd7d32f0488cef90a17c491c6021bbdd181c7 Closes-BUG: #1580855
Configuration menu - View commit details
-
Copy full SHA for b091cbb - Browse repository at this point
Copy the full SHA b091cbbView commit details -
Merge "DPDK: Set MTU of bonded interfaces as one of the slave's MTU i…
…n rte_eth_dev structure" into R3.0
Configuration menu - View commit details
-
Copy full SHA for 4e0ca7b - Browse repository at this point
Copy the full SHA 4e0ca7bView commit details
Commits on May 17, 2016
-
Out Of Order Fragment handling fixes
. If any fragment other than the HEAD comes to the assembler, then it means that datapath was not able to find the flow information for that fragment, since HEAD had not yet passed through it. Hence, there is an explicit assumption in the assembler that HEAD will always come later than at least one fragment. Once the HEAD arrives, the assembler will look for all the fragments of that packet and flush the fragments. Since the assembler is an asynchronous entity with respect to the datapath, it is possible that by the time it gets the event and processes the input fragments, HEAD also would have arrived, and possibly in a different CPU than the other fragments. If the HEAD then is processed first, the assembler will not find any fragments that will need the information that is supplied by the HEAD and hence the fragments that arrived in the system before the HEAD will stay in the assembler queue till they get timed out. . Because of the asynchronous nature of the assembler, the IP header of the cloned HEAD is not a safe access, since the original packet might have undergone NATing, resulting in wrong IPs being used for selecting the queues to search for fragments. Hence, store the IPs in the packet node along with the fragment information so that assembler will make the right calculations. . Initialize the packet node flags field to zero. Uninitialized pnode flags resulted in the label being treated as a VNID and hence an unset packet nexthop and thus a wrong key nexthop in the flow key, resulting in HOLD flows. Change-Id: I5d2c5abcda9c612c9d13378c79ae5d8392fd2c7b Closes-BUG: #1579828
Configuration menu - View commit details
-
Copy full SHA for cab4c7c - Browse repository at this point
Copy the full SHA cab4c7cView commit details
Commits on May 19, 2016
-
- Set the VLAN filter for VFs if vrouter is provisioned on a VLAN.
Change-Id: I33e5f26b50c0532c3a802acba8025f3a268be4fb Closes-bug: 1573255
Configuration menu - View commit details
-
Copy full SHA for fbf7525 - Browse repository at this point
Copy the full SHA fbf7525View commit details -
Set vlan filter only when vrouter physical interface is a VF.
Change-Id: Iad9a60ba9fa737167a650cd80997ff149cc8c9cf Closes-bug: 1573255
Configuration menu - View commit details
-
Copy full SHA for a03c7c5 - Browse repository at this point
Copy the full SHA a03c7c5View commit details
Commits on May 24, 2016
-
Disabling GRO when mirroring is enabled
When the packets are received on Fabric interface, these are subjected to GRO before transmitting them to Tap interface. If Tx port mirroring is enabled on Tap interface, as of now, mirroring is applied after GRO of the packets. If the mirroring server is on another compute node, these mirrored packets have GSO enabled. Vrouter makes use of Linux GSO routines and these GSO routines expect that skb in skb_list of head_skb does not contain any linear data (skb_headlen should be zero). Due to GRO the skb_headle of some skb's in skb_list contains linear data resulting in GSO routiness hitting a BUG_ON. To over come this, the GRO needs to be applied post mirroring. To enabled GSO on the mirrored packets the skb's gso_len also need to be supplied. Instead of this fix, GRO is disabled if Tx port mirroring is enabled on Tap interface as stop gap fix till the complete fix is in place. Change-Id: I7dd86e1bd90fef60efa4c9dbac78e853952c4fdc closes-bug: #1577473
Configuration menu - View commit details
-
Copy full SHA for 0919fd4 - Browse repository at this point
Copy the full SHA 0919fd4View commit details -
Configuration menu - View commit details
-
Copy full SHA for f3bdaf2 - Browse repository at this point
Copy the full SHA f3bdaf2View commit details
Commits on May 25, 2016
-
Configuration menu - View commit details
-
Copy full SHA for f9a5357 - Browse repository at this point
Copy the full SHA f9a5357View commit details -
Set MAC address of slave interface explicitly if it is a SR-IOV VF.
Change-Id: I4d62d23fff5d9e34477f3d706197322c1f2c94a7 Closes-bug: 1573255
Configuration menu - View commit details
-
Copy full SHA for 306b142 - Browse repository at this point
Copy the full SHA 306b142View commit details -
Merge "Set MAC address of slave interface explicitly if it is a SR-IO…
…V VF." into R3.0
Configuration menu - View commit details
-
Copy full SHA for 0891b19 - Browse repository at this point
Copy the full SHA 0891b19View commit details -
Put global PMD stats to lcore 0. Change-Id: Ib63686c28f4082746e09bfdd6a070d9796cdd7c5 Closes-bug: #1567470
Configuration menu - View commit details
-
Copy full SHA for 4e0d94a - Browse repository at this point
Copy the full SHA 4e0d94aView commit details
Commits on May 27, 2016
-
Configuration menu - View commit details
-
Copy full SHA for f65b314 - Browse repository at this point
Copy the full SHA f65b314View commit details -
Keeping the mirror metadata entry in Flow entry
Currently mirror metadata is stored in index table using flow index as key. Before the Flow eviction, the addition and deletion of this meta data to Index table is always from Agent and hence no parallel manipulation of Index table. After eviction, the metadata deletion from index table can happen in parallel and hence leading to memory corruption/leak in index table manipulation. The right fix is making the index table SMP ready. As a stop gap fix, the mirror metada data pointer is stored in the flow entry itself directly. Change-Id: I4c98af36646c3389996575af8eac3e98b3ffdca2 closes-bug: #1572397
Configuration menu - View commit details
-
Copy full SHA for 063ab3d - Browse repository at this point
Copy the full SHA 063ab3dView commit details -
The current limit of flow hold count is 4096 in Vrouter. With this checkin this is increased to 8192. The dpdk limits are not manipulated. Change-Id: I0292c74fde0d4c5cd867004da502e57135ca3b9e closes-bug: #1586358
Configuration menu - View commit details
-
Copy full SHA for 66aeed6 - Browse repository at this point
Copy the full SHA 66aeed6View commit details
Commits on May 30, 2016
-
Configuration menu - View commit details
-
Copy full SHA for ad59139 - Browse repository at this point
Copy the full SHA ad59139View commit details
Commits on May 31, 2016
-
New drop counter for Flow eviction
Currently the packets are dropped if it hits a flow which is being evicted. This drop is incremented under "Flow unusable". As such "Flow unusable" is used for good number of cases and incrementing the eviction drop also under that leads to issues is debugging. So a new counter "Flow unusable (eviction)" is incremented for this purpose. Change-Id: I62f4f6dae0ccc42c256fd45e8b6163b0fec72824 closes-bug: #1584257
Configuration menu - View commit details
-
Copy full SHA for 9ee131f - Browse repository at this point
Copy the full SHA 9ee131fView commit details
Commits on Jun 1, 2016
-
DPDK: Handle packets with 802.1p
We are not masking the priority bits in packet vlan header when we check if we have to consume the packet or re-inject to the host. Fixed the same Change-Id: I2d931f751f12f50b3cef92da06e4185b13c14e61 Closes-bug: 1588075
Configuration menu - View commit details
-
Copy full SHA for df9e0ee - Browse repository at this point
Copy the full SHA df9e0eeView commit details -
Fix a race condition which resulted in the pkt0 thread polling too soon
(before the eventfd could be added to the poll). Change-Id: I51c1484d7aa8b67fcb2a03c42ef73894158129da Closes-Bug: 1587275
Configuration menu - View commit details
-
Copy full SHA for d65550d - Browse repository at this point
Copy the full SHA d65550dView commit details
Commits on Jun 2, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 8af0027 - Browse repository at this point
Copy the full SHA 8af0027View commit details -
Merge "Fix a race condition which resulted in the pkt0 thread polling…
… too soon (before the eventfd could be added to the poll)." into R3.0
Configuration menu - View commit details
-
Copy full SHA for 95f72e3 - Browse repository at this point
Copy the full SHA 95f72e3View commit details
Commits on Jun 3, 2016
-
Inrease the Trap size of the truncated packet while Trapping to Agent
Currently for certain Trap messages the packet is trncated to 128 bytes. if the packet is truncated to 128 bytes, Agent does not get to see the transport header depending on the encapsulation of the packet. The ICMP packet being received with Vxlan encap is one such scenario where Vrouter creates a flow with right Transport ports but as Agent does not see the correct ports it handles that as different flow. This leads to Hold entries being left in Vrouter. To avoid this, instead of using the standard 128 bytes as Truncation, it is calculated using the headers length. Change-Id: Ifba2e7af4f1eb2310593a14a81350446273b2875 closes-bug: #1588623
Configuration menu - View commit details
-
Copy full SHA for 869f263 - Browse repository at this point
Copy the full SHA 869f263View commit details -
Configuration menu - View commit details
-
Copy full SHA for 60fc986 - Browse repository at this point
Copy the full SHA 60fc986View commit details -
Merge "Inrease the Trap size of the truncated packet while Trapping t…
…o Agent" into R3.0
Configuration menu - View commit details
-
Copy full SHA for 41187db - Browse repository at this point
Copy the full SHA 41187dbView commit details -
DPDK: Make the RSS mempool size as configurable through command line
Change-Id: I9dc88b3b7370d9d36198c6724dff057b66697884 Closes-Bug: 1585475
Configuration menu - View commit details
-
Copy full SHA for 9e23f34 - Browse repository at this point
Copy the full SHA 9e23f34View commit details
Commits on Jun 9, 2016
-
Enabling ARP processing on Service interface
To avoid the flooding of packets on service interface, BUM traffic on service interface is drooped. This is fine as service instance does not communicate to another sevice instance. This fix enables the ARP processing on service instance interface so that it can communicate to another service instance. If ARP algorithm choses to flood the ARP request, it is still dropped, so that it would not loop. Change-Id: I31e18f16d8baa5d9dd65da202636b36048b64a0f closes-bug: #1516914
Configuration menu - View commit details
-
Copy full SHA for 3c57fad - Browse repository at this point
Copy the full SHA 3c57fadView commit details
Commits on Jun 10, 2016
-
DPDK: fix low performance of SR-IOV VF IO lcore
The check for number of forwarding lcores is incorrect when number of worwarding lcores is about the same the number of TX queues. Change-Id: Icd4e2fe453e695199322fb5391aebf5cd2ffed3b Closes-bug: #1567470
Configuration menu - View commit details
-
Copy full SHA for cd31d22 - Browse repository at this point
Copy the full SHA cd31d22View commit details -
DPDK: fix LACP address add function
Using rte_eth_dev_mac_addr_add() does not work on virtual functions. Change-Id: I6389fc14499ab7c77540b4423ed241872d2d8ca7 Partial-bug: #1588182
Configuration menu - View commit details
-
Copy full SHA for 7dff496 - Browse repository at this point
Copy the full SHA 7dff496View commit details
Commits on Jun 11, 2016
-
Merge "DPDK: Make the RSS mempool size as configurable through comman…
…d line" into R3.0
Configuration menu - View commit details
-
Copy full SHA for ba021ac - Browse repository at this point
Copy the full SHA ba021acView commit details -
Configuration menu - View commit details
-
Copy full SHA for bb6daac - Browse repository at this point
Copy the full SHA bb6daacView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4692505 - Browse repository at this point
Copy the full SHA 4692505View commit details
Commits on Jun 15, 2016
-
Pull the SCTP header in the ICMP error headers to Head SKB
When the packet is received on Fabric interface right now the inner header are pulled if they are TCP, UDP, ICMP and SCTP. In case of ICMP error, the IP header that caulsed the ICMP error is also pulled. While pulling this payload IP header the transport heder is pulled onl if it is TCP or UDP or ICMP. But if the ICMP error is caused by SCTP packet, this SCTP transport header which is part of ICMP payload is not pulled. This is resulting in Vrouter seeing a different SCTP ports which are not valid and hence a flow new flow is created thopugh the original flow exists for these SCTP flows. As Agent is seeing the correct packet it does not update the newly created wrong flow and is not moved out of Hold state. Agent eventually removes this from as part of its aging cycle. As a fix, ICMP pauyload SCTP transport header also is pulled to head SKB. Also as part of above fix, it is observed that transport header checksum filed is wrongly pointing to ICMP error payload's transport header checksum rather to ICMP checksum itself in case of ICMP errors. So this has been modified so that th_csum always points to right transport header checksum. closes-bug: #1588925 o Change-Id: I4a843224f92e61263a4598074ff9baa1a864eb78
Configuration menu - View commit details
-
Copy full SHA for 6e0b40c - Browse repository at this point
Copy the full SHA 6e0b40cView commit details
Commits on Jul 8, 2016
-
Fix dependency issue with vrouter-dpdk
Need to make the .o's of contrail-vrouter-dpdk depend on dpdk_lib, as they need the .h's of dpdk_lib to compile .c->.o's. Change-Id: Ia9a81d4745625d71e28f9b7d3758d15b77a4fbe3 Partial-Bug: #1599674
Karl Klashinsky committedJul 8, 2016 Configuration menu - View commit details
-
Copy full SHA for f0fe573 - Browse repository at this point
Copy the full SHA f0fe573View commit details
Commits on Jul 12, 2016
-
Avoid building vrouter and dpdk against 4.2.0 kernel
Porting work required for vrouter and libdpdk (third_party/dpdk) to compile against kernel v4. In the meantime, when detecting kernel installed version is 4.*, we will make sure that vrouter and libdpdk build against a supported v3 kernel. Otherwise, Makefile's for both will default to build against installed kernel version. Change-Id: I825721b2f3b36cb320a215b31f606dad35e9b77a Partial-Bug: #1599674
Karl Klashinsky committedJul 12, 2016 Configuration menu - View commit details
-
Copy full SHA for 32821b2 - Browse repository at this point
Copy the full SHA 32821b2View commit details
Commits on Jul 20, 2016
-
Inline skb_frag_add_head in 4.3 later kernels.
skb_frag_add_head has been removed from 4.3 Closes-Bug: #1572124 Change-Id: I77c182364841331d47357e3fe32b375b07821e24
Configuration menu - View commit details
-
Copy full SHA for 353c9c5 - Browse repository at this point
Copy the full SHA 353c9c5View commit details
Commits on Jul 21, 2016
-
The source IP for neighbor advertisement should be same as the target…
… address. There is no need to change it to a different address. Change-Id: I156babd985d86989fd6c2c6eefadbb7f261e687f closes-bug: #1604105 (cherry picked from commit 348ca58)
Configuration menu - View commit details
-
Copy full SHA for 0ef8ec9 - Browse repository at this point
Copy the full SHA 0ef8ec9View commit details
Commits on Jul 31, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 4154466 - Browse repository at this point
Copy the full SHA 4154466View commit details
Commits on Aug 6, 2016
-
Support Relax policy for pkt from tap interface
Adding support for relax policy on route nexthop Partial-Bug: 1597540 Change-Id: Ie191356f8e26cf16564e69ab854fef40c84dab81 (cherry picked from commit abdaac9)
Prabhjot Singh Sethi committedAug 6, 2016 Configuration menu - View commit details
-
Copy full SHA for 3aa3680 - Browse repository at this point
Copy the full SHA 3aa3680View commit details
Commits on Aug 8, 2016
-
Fix NH flag usage for relax policy
Issue: ------ Relax policy processing for VHOST recv NH needs to be done only in certain specific scenarios however the RELAX_POLICY flag will always be set. Doing an unconditional look for it causes other features to break Fix: ---- Using a separate flag to perform a flow lookup unconditionaly to distinguish it from relax po0licy on recevie nh. Partial-Bug: 1597540 Change-Id: I3b44714a041e2ea681103e01dcbd0811502c4cf6 (cherry picked from commit 2b01d8a)
Prabhjot Singh Sethi committedAug 8, 2016 Configuration menu - View commit details
-
Copy full SHA for 8852017 - Browse repository at this point
Copy the full SHA 8852017View commit details
Commits on Aug 18, 2016
-
nh tool to expand composite nh recursively
For better outputs, nh tool should expand composite nh and display all destinations recursively Change-Id: Ie639fb28e797edd57f6114308a71d21f745fd752 Closes-bug: #1473532
Configuration menu - View commit details
-
Copy full SHA for 6e20800 - Browse repository at this point
Copy the full SHA 6e20800View commit details
Commits on Aug 26, 2016
-
Update prefix len in Mtrie bucket as well
Right now, if mtrie already contains more specific entries and if a less specific entry is added, only non-matching leaves are updated with less specific entry's prefix len. The matching buckets also need to be updated with prefix len. Not updating the prefix len in buckets, results in, not collapsing the tree, if these less specific entries are deleted. For example, in an empty tree, 8.1.1.10/32 -> nh1 is added. This results in, at level 1 bucket 8, level 2 bucket 1, level 3 bucket 1 to contain prefix len as 0 and level 4 bucket 10 to contain prefix len as 32. The other leaves in level 4 (like 8.1.1.1 till 8.1.1.255 except 10) also contain prefix len as 0. After this 8.1.1.0/24 -> nh2 is added. Currently the prefix len of 24 is updated only in the leaves like, 8.1.1.1 till 8.1.1.255. Ideally the prefix len 24 should be updated in level 3 bucket 1 as well. Not updating this, leads to issues while collapsing level 3 buckets. Fixes: 1) Prefix len is updated in the matching buckets as well 2) In the label flags, if LABEL_VALID flag not set, the label stored does not have any meaning. But while collapsing the bucket the labels are also compared leading to non-collapse. The labels need to be compared only if the LABEL_VALID flag is set. To over come this, if the LABEL_VALID is not set, the label is stored as -1, so that they are comparable even if flag is not set 3) In 'rt' utility, the replacment len incase of delete is wrongly initialised to 100. This is rectified. Change-Id: I837a32ecc8d6c15fa8644028d63ef38f2259e3ab closes-bug: #1605748
Configuration menu - View commit details
-
Copy full SHA for f2f19eb - Browse repository at this point
Copy the full SHA f2f19ebView commit details
Commits on Aug 30, 2016
-
Optimise the add_to_tree in mtrie
In addition to the changes in https://review.opencontrail.org/#/c/23405/ these changes do the following 1) Update the prefix len in both Bucket and leaf at single place 2) Initialise the invalid Labels to 0xFFFFF. 3) Simplifying the logic of "fin" iterations closes-bug: #1605748 Change-Id: I417dc918a3186dc9e18ef03b75e53465f0f23fc7
Configuration menu - View commit details
-
Copy full SHA for c0f4500 - Browse repository at this point
Copy the full SHA c0f4500View commit details
Commits on Sep 2, 2016
-
When in a softirq context, memory allocation should be atomic
Eviction of flows based on TCP state machine happens in the softirq context. The process of evicting a flow depends on the kernel work queues, for which allocation of memory needs to happen. Under such cases, the allocation should not wait. Hence, pass GFP_ATOMIC as the allocation flag when in softirq context to indicate that the path is not willing to block. Change-Id: I2c56203c2666a981ff3218268611d95e18281151 Closes-Bug: #1618375
Configuration menu - View commit details
-
Copy full SHA for c08c488 - Browse repository at this point
Copy the full SHA c08c488View commit details -
1) Currently the number of delete marked hash entries in Hash bucket is used for triggering the work item for the deletion. Work item is triggered when the first entry is delete marked. But due to contention in handling "number of delete marked entries", the next work item is never triggered. As a fix, a new variable is used per hash bucket to trigger the work item. 2) When Agent gives soft reset, Vrouter marks vr_not_ready. Once vr_not_ready is set, Work items and RCU callbacks should not be registered any more. In hash table deletion process, once this is set, hash bucket is directly manipulated without work item. This results in issues, if any pending work item is currently being executed. If work item and hash entry deletion (vr_htable_release_hentry()) access the same hash bucket, the hash bucket list goes bad. As a fix, a new API vr_htable_reset() is introduced. vr_htable_release_hentry() does not manipulate the hash entry if vr_not_ready is setup. Modules are expected to call vr_htable_reset() to reset the hash table. Call backs are invoked to act on the reset hash entries. Change-Id: I9edc2c9e7718e3e0eae74a29fd4faaab8c3055b5 closes-bug: #1614382
Configuration menu - View commit details
-
Copy full SHA for 93ec459 - Browse repository at this point
Copy the full SHA 93ec459View commit details -
Respond with stitched MAC for unicast ARP request
When an unicast ARP request is received on fabric interface of a compute node, from BMS behind QFX, if MX is in ecmp, the source IP lookup might point to subnet route pointing to Ecmp nexthop. This is because there would not be any host route for BMS in inet table. This results in Vrouter responding with Vhost mac address though the destination IP address is stitched. As such this behaviour is to ensure that Routing is forced if the packet is from Ecmp source, though destination is in same subnet. But this behaviour creates issues to BMS behind QFX, if BMS refreshes ARP with unicast ARP request. As a fix, the multicast ARP requests from Ecmp source on fabric interface are dropped. If unicast ARP requests and if the destination mac address of the ethernet packet is stitched mac, the ARP reply is sent with stitched mac. If destination mac address does not match with stitched mac, that ARP request is not processed by Vrouter. closes-bug: #1594165 Change-Id: I72f4c44329b14c589343b30b84181cc8e0e05e81
Configuration menu - View commit details
-
Copy full SHA for 7cc0122 - Browse repository at this point
Copy the full SHA 7cc0122View commit details -
Configuration menu - View commit details
-
Copy full SHA for 54f87b0 - Browse repository at this point
Copy the full SHA 54f87b0View commit details -
Configuration menu - View commit details
-
Copy full SHA for a20d45b - Browse repository at this point
Copy the full SHA a20d45bView commit details
Commits on Sep 3, 2016
-
Handle unicast ARP requests in source compute node
Currently the unicast ARP requests are not processed in the source compute node. These packets are switched to the destination compute node and before handing the L2 packet to destined VM, these are processed. This can result in Ecmp source VM sending unicast ARP requests and destination VM (non ecmp) responding with Vhost MAC. As a fix, unicast ARP requests are also processed in source compute node itself Change-Id: I7ff8e0b4a5b9fc8abf777e32ed4ef8aeeb4358d6 closes-bug: #1618154
Configuration menu - View commit details
-
Copy full SHA for 7145759 - Browse repository at this point
Copy the full SHA 7145759View commit details
Commits on Sep 12, 2016
-
Trap & Flood neighbor advertisements
Change-Id: I822e1f1d4ca8f43bd648383a46f3f5bb30d0274a Closes-Bug: #1592119
Configuration menu - View commit details
-
Copy full SHA for 931d74e - Browse repository at this point
Copy the full SHA 931d74eView commit details
Commits on Sep 14, 2016
-
Fix memory allocation for interface request
In order to pass per lcore queue input error statistics to the application that does vif query, we allocate only VR_MAX_CPUS worth of memory, but we try to copy vr_num_cpus worth of data. In the case of vr_num_cpus > VR_MAX_CPUS (64), we will hit a snag. As a fix, allocate memory for vr_num_cpus. Change-Id: Ifb1060aac20011b8d51e1b31063a363fe268fd3d Closes-Bug: #1621816
Configuration menu - View commit details
-
Copy full SHA for a709ccd - Browse repository at this point
Copy the full SHA a709ccdView commit details
Commits on Sep 22, 2016
-
In HashTables, handle the error case if deferred work entry creation …
…fails Right now, if the deferred work entry creation fails, we do not take any ation. This can result in, Hash bucket never being cleaned up, as there is no work entry scheduled at all. As a fix, reset the work entry 'scheduled' variable, so that, it gets scheduled when the next hash entry is attemped for deletion in that bucket Change-Id: Ia66bd340177253ac1267aa667521c26838487dbe partial-bug: #1618375
Configuration menu - View commit details
-
Copy full SHA for 90c9693 - Browse repository at this point
Copy the full SHA 90c9693View commit details
Commits on Sep 30, 2016
-
If a pclone fails, trap the original packet
In the process of indicating a flow miss to the agent, if a pclone fails, vRouter returns without unsetting the NEW flag, a flag that indicates that the datapath is in the process of creating a new flow. The side effect of not unsetting this flag is that agent can not modify the entry and this leads to perennial HOLD flows in the system. To fix this problem, if the pclone fails, trap the original packet to the agent without holding it in the HOLD queue. While this will mean that the first packet does not reach the destination, it is a better alternative to not trapping the packet and wait for agent to do the audit after a minute or so. Such trapped packets are captured under a new counter "Original Packet Trapped" in the dropstats output. Change-Id: I34c19abf935d9b06f55e875b76a4859350743c2b Partial-Bug: #1628175
Configuration menu - View commit details
-
Copy full SHA for 8d38dc3 - Browse repository at this point
Copy the full SHA 8d38dc3View commit details
Commits on Oct 18, 2016
-
Transmit V6 Neighbour advertisement on the receiving interface
This fix is IPV6 equivalent of https://review.opencontrail.org/#/c/11506/. In in-network service instance case, when service scaling is more than one, all the instances are going to have the same mac address and IP address. Inet route points to ECMP composite nexthop but FDB route does not point to ECMP nexthop. So when neighbour request is received from service VM Vrouter needs to send response on the incoming interface rather bridging the reply packet, as FDB route points to arbitrarly any of the service VM encap L2 nexthop. After preparing the reply packet,bridge lookup is done and outgoing interface is compared against ingress interface. If they are not same, reply packet is transmitted on ingress interface. Change-Id: Ib0113227019d7a452541129843813a647d388b36 closes-bug: #1461882
Configuration menu - View commit details
-
Copy full SHA for e894f7e - Browse repository at this point
Copy the full SHA e894f7eView commit details
Commits on Oct 21, 2016
-
Calcaulte udp source port for multicast pkt using right hash
While calculating the UDP source port for a multicast packet, the hash needs to be on Ethernet header and VRF Id. For packet arriving from VM and Tor, there are no extra header other than transport headers. So the hash is calculated rightly for these packets. But for packets arriving from other compute node, there are additional header other than transport headers. The hash is wrongly calculated in this case on thsese additional headers leading to different hash for the same Ethernet headers, resulting in different UDP sourcd port. The offset is correctly calculated and right ethernet header is passed to hash function as fix. Change-Id: I93ae0d96e536875988da6a525cdba4783c1e4d6e closes-bug: #1635046
Configuration menu - View commit details
-
Copy full SHA for 1c04f00 - Browse repository at this point
Copy the full SHA 1c04f00View commit details
Commits on Oct 24, 2016
-
Disable the flow processing for Neighbour Advertisements
The neighbour request packets are typically Multicast packets and there is no flow processing for these. When a neighbour request is converted to neighbour advertisement, we continue to use the same packet buffer and same packet flags for this advertisement too. This ends up in not creating a flow for neighbour advertisement too as the original packet is marked as multicast packet. But the fix we gave https://review.opencontrail.org/#/c/24973/ for bug: #1461882 for V6 resulted in creating new packet flags for advertisement and this is resulting in flow being created. The flow processing is dropping the response as the neighbour advertisement should have ideally come from different interface. We can fix this issue either by manipulating the source interface to match the interface on which neighbour is falling so that flow processing succeeds or by disabling the flow processing for advertisements. The fix now disables the flow processing for advertisements Change-Id: Ic91f0fb794c13912e43d8c96c726bd80e559b7fb closes-bug: #1635931
Configuration menu - View commit details
-
Copy full SHA for 8d407c8 - Browse repository at this point
Copy the full SHA 8d407c8View commit details
Commits on Oct 26, 2016
-
Change in port mirroring tap locations
For all types of virtual interfaces, the location from where we tap packets for RX port mirroring is in a common function where all the common virtual processing happens. For a vlan based sub-interface, this means that the port mirroring happens post untagging the packet and hence this is not a correct behavior. Hence, move the tap locations to the lowest layers of vif receive. Also, during transmission, since the tap is in the lowest common layer, sub interface mirroring does not work. Hence, move the taps to the highest layer of vif transmit. Also, add taps for vhost and physical interfaces. Change-Id: Ie42bfcedde2eba1167fa49e7ecd627b7762363e9 Closes-Bug: #1630889
Configuration menu - View commit details
-
Copy full SHA for d5c7566 - Browse repository at this point
Copy the full SHA d5c7566View commit details -
Set packet type before mirroring from port
In order to make sure that we mirror the packet the way we received it, i.e before removing any data from the packet, such as vlan tags, mirroring tap points were moved to the very beginning of packet processing in vRouter. Unfortunately, packet type classification does not happen before the mirror tap point. Since no classification happens, options like COPY SIP/DIP does not work and hence packets can get dropped in the flow block. Fix this by explicitly classifying the packet in the vif_mirror. Change-Id: Id310b31bc1990e6671882b447b8243767ada24ee Closes-Bug: #1630889
Configuration menu - View commit details
-
Copy full SHA for 9e5565c - Browse repository at this point
Copy the full SHA 9e5565cView commit details
Commits on Oct 28, 2016
-
For port mirroring, flow index should not be set
During transmit port mirror, we seem to be using the mirror values from the flow of the original packet. This is not a right behavior, since port mirroring shouldn't be depending on flow based mirror values. Hence reset the flow index for the port mirrored packet Change-Id: I1aff969b08a2f247ccf1fc636d6689350e819f29 Closes-Bug: #1636638
Configuration menu - View commit details
-
Copy full SHA for 7f5e8b1 - Browse repository at this point
Copy the full SHA 7f5e8b1View commit details
Commits on Nov 8, 2016
-
Manipulating the TTL of the Packet
Right now the TTL of the packet is not overwritten by Vrouter. It is only decremented like a hop, for the required packets. But BGP packets in VM (due to BGP as service), can come to Vrouter to with ttl of 1. In a multi hop environment, we require this ttl to be more than 1. For this purpose flow entry is added with another ttl field and if Agent sets this, vrouter unconditionally sets this ttl in the packet and calculates the checksum again. Change-Id: I4619e81ad324827e29dc487857020ddd9e429f2c partial-bug: #1567586
Configuration menu - View commit details
-
Copy full SHA for afbd37c - Browse repository at this point
Copy the full SHA afbd37cView commit details -
If packet clone needs to be modified, create a copy of the DPDK mbuf.
Change-Id: I31ff88e6f46600b917c62ac967d112f9bd0949c5 Closes-BUG: 1630772
Configuration menu - View commit details
-
Copy full SHA for 8365502 - Browse repository at this point
Copy the full SHA 8365502View commit details
Commits on Nov 14, 2016
-
Disable vlan offload as it causes performance degradation.
Change-Id: Id7bd20a040a1aa3c1ad4b1c6f68c10a9836d6108 Closes-Bug: 1641254
Configuration menu - View commit details
-
Copy full SHA for 72d4ef3 - Browse repository at this point
Copy the full SHA 72d4ef3View commit details
Commits on Nov 16, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 81cf048 - Browse repository at this point
Copy the full SHA 81cf048View commit details
Commits on Dec 6, 2016
-
Fixing display of vrouter build_info for sandesh
For sandesh message of vrouter build information, null termination character is not accounted while populating sandesh message. Due to this, extra characters are observed at collector and contrail-alarm-gen. Modified copy of string by taking null termination character into consideration. Change-Id: I249c5fc168d301b718e63530a2022bbe67e080f0 Closes-Bug: #1646693
Configuration menu - View commit details
-
Copy full SHA for d15a137 - Browse repository at this point
Copy the full SHA d15a137View commit details
Commits on Dec 10, 2016
-
Avoid flow processing for neighbor solicitation/advertisements
A unicast neighbor solicitation/response undergoes a flow lookup. In many cases the source IP address that is used will be the link local IP which will get dropped because of RPF checks. Consistent with the way we treat ARP requests, we will now make sure that the solicitation and advertisements do not undergo flow lookup. Change-Id: Ib2ab306b0bdd6f201c35faa1918f97324238be1e Closes-Bug: #1643906 (cherry picked from commit 961a878)
Configuration menu - View commit details
-
Copy full SHA for 82adb2a - Browse repository at this point
Copy the full SHA 82adb2aView commit details
Commits on Jan 19, 2017
-
Make average setup rate as uint64 to prevent overflow in calculation
with high number of flows. Skip flow setup rate calculations for the first time. Change-Id: Ib17bda69b7e1994a460512035be09888ad78500c Closes-Bug:#1654941
Configuration menu - View commit details
-
Copy full SHA for 3cd1586 - Browse repository at this point
Copy the full SHA 3cd1586View commit details
Commits on Jan 23, 2017
-
Calculate checksum only for valid IP length
__skb_checksum_complete calculates checksum for the whole packet, including the ethernet padding if any. This will result in wrong checksum verification at the receiving end and thus a wrong packet drop. Use __skb_checksum_complete_head instead and pass the length calculated from IP header as the size over which checksum has to be calculated. Change-Id: I48efbb66bc171c590784d6f1931be9abd81198ae Closes-Bug: #1658576
Configuration menu - View commit details
-
Copy full SHA for 93cc9bd - Browse repository at this point
Copy the full SHA 93cc9bdView commit details
Commits on Feb 8, 2017
-
Do not blindly bridge link local neighbor solicitations
The existing code that handles neighbor solicitations, bridges all requests to link local destinations. This behavior does not work for gateway link local address since . a broadcast request to the link local address will not make to the agent . a unicast request to the link local address will not be handled by the agent. Agent does not handle neighbor solicitations since vRouter is expected to respond back with the proper mac address based on the flags in the route. Hence, make all link local neighbor solicitations to go through vRouter's logic of proxying and flooding based on flags set on the route. Change-Id: I4f23d1c980e887d044776d49bbc71b9faaf2f0a9 Closes-Bug: #1657483 Set the 'Router' bit if proxying with Router MAC For ICMPv6 advertisements that carry the Router MAC, set the 'Router' bit in the advertisements. Change-Id: Iccc5d1ca025c71f55bfc85c6e12f4cf6944a9dfc Closes-Bug: #1657483
Configuration menu - View commit details
-
Copy full SHA for 7bd4685 - Browse repository at this point
Copy the full SHA 7bd4685View commit details
Commits on Feb 21, 2017
-
Don't look for UDP header in second fragment and later.
Change-Id: I724e58d9ecee113ee7627f9d4b2b52f0033c2d16 Partial-Bug:1664734
Configuration menu - View commit details
-
Copy full SHA for 16df717 - Browse repository at this point
Copy the full SHA 16df717View commit details
Commits on Mar 1, 2017
-
Remove the constraint of V6 prefix length to be multiple of 8
While adding the V4 and V6 routes to Mtrie, bits that are set in prefix beyond the mask length are reset to 0. While doing this for V6 prefixes, it is assumed that V6 mask len is byte boundary. If not, thre prefix corresponding to those bits are also reset to zero. As a fix, this constraing has been removed Change-Id: I2c61ea9829d37b78d8570411bc3db02c0ef1cded closes-bug: #1657766 (cherry picked from commit 9b60ccf)
Configuration menu - View commit details
-
Copy full SHA for e761a05 - Browse repository at this point
Copy the full SHA e761a05View commit details
Commits on Mar 10, 2017
-
Hold packets while doing ECMP resolution
In a typical ECMP use case, by the time packet destined to the ECMP destination hits the flow, the ECMP index to be used to select the best among equals would already have been decided by the agent and programmed accordingly in the vRouter. However, in some not so common scenarios, the first packet can be trapped to agent for resolving the nexthop to be used among the nexthops that form the ECMP destination. In such cases, we should hold and trap the packet rather than just trapping so that first packet loss can be avoided. Change-Id: I09e785254ee0ef187099152e2808b8a67850d31d Closes-Bug: #1648027 (cherry picked from commit 21a6b46)
Configuration menu - View commit details
-
Copy full SHA for 590c83a - Browse repository at this point
Copy the full SHA 590c83aView commit details
Commits on Mar 31, 2017
-
Terminate the long_options array with an entry that is all zeros,
to define end of parsing by getopt_long hence preventing segfault. Change-Id: I018e5af02e5842d25494b2d93412c8c37dd4b316 Closes-Bug:#1651153
Configuration menu - View commit details
-
Copy full SHA for bd8e19a - Browse repository at this point
Copy the full SHA bd8e19aView commit details
Commits on Apr 4, 2017
-
Fix segmentation fault in dropstats , vrmemstats utilities.
Add all zeros to define end of long_options array. Change-Id: I1ba57bc0ed6bb2d3ddce3f72dcbd87e2d4e30b53 Closes-Bug: #1679489
Configuration menu - View commit details
-
Copy full SHA for 11d43bd - Browse repository at this point
Copy the full SHA 11d43bdView commit details
Commits on Apr 10, 2017
-
Increment Nexthop ref count atomically
Right now, the NH's refcount is not incremented atomically as reference to NH is always taken from a single thread in nelink context. This is becuase Routes, Labels, and other NH's access an NH only when Agent performs config changes. But with data path mac learning in place because of PBB, reference to NH, esp L2 Mutlicast NH, happens from multiple threads leading to requirement incrementing it atomically. Not doing it causes the ref count to go bad for that particular NH and results in double free of NH. Change-Id: I0afa517b56eeac0371670ee76241e392be762f20 closes-bug: #1672293 closes-bug: #1672373 closes-bug: #1673663
Configuration menu - View commit details
-
Copy full SHA for 9900fb6 - Browse repository at this point
Copy the full SHA 9900fb6View commit details -
Cleanup SubVIF properly if addition fails
On a given physical interface there can only be one subinterface per given Vlan ID. If Agent attempts to add multiple subinterfaces with same Valn ID, vrouter rejects that addition with -EEXIST error. As part of this rejection, the temproary subinterface need to be properly cleaned up. Right now the clean up is not proper w.r.t memory and the refcount of the physical interface is lso not handled well. This is leading to either memory leak/corruption. Also currently the ref counting of VIF is not symetric w.r.t increment and decrement. Decrement of ref count is done in atomic way but not increment. This as such can lead to issues when RCU callbacks of NH (which eventually decrement VIF ref count in atomic manner) are executed in parallel to new NH addition from Agent (which increments VIF ref count non atomic manner). As a fix, sub VIF is cleaned up properly and VIF ref count is incremented in atomic manner Change-Id: I2a9d41f2b0152f700e2c5c96c9f39825c22ce482 closes-bug: #1677571
Configuration menu - View commit details
-
Copy full SHA for 867e3c6 - Browse repository at this point
Copy the full SHA 867e3c6View commit details
Commits on Apr 11, 2017
-
Configuration menu - View commit details
-
Copy full SHA for 46032c0 - Browse repository at this point
Copy the full SHA 46032c0View commit details
Commits on May 2, 2017
-
Reset the reach_nh pointer to original value
If the composite nexthop does not have any component nexthops, we set the reach_nh to discard. One side effect of this behavior is that multicast ARPs are dropped, since ARP processing happens in the composite nexthop handling. Hence, retain the composite nexthop functionality, even if there are no component nexthops. As part of this change, we also make sure that if a change in any nexthop fails, we do not disrupt the way it works. Change-Id: Ic9ea091e3f0cbe659389bc57bea2a1e214bbd771 Closes-Bug: #1686452 (cherry picked from commit d686b42)
Configuration menu - View commit details
-
Copy full SHA for a1aa693 - Browse repository at this point
Copy the full SHA a1aa693View commit details
Commits on May 5, 2017
-
Closes-Bug:#1630651 Change-Id: I99a090f26083b0804a2e0147d24f24a17d5be0ce
Configuration menu - View commit details
-
Copy full SHA for 0727200 - Browse repository at this point
Copy the full SHA 0727200View commit details
Commits on May 8, 2017
-
Memset the control block to zeroes before calling skb_segment
skb_segment casts part of skb->cb to some structure to determine tunnel header length. Having remnants of packet structure in cb results in wrong tunnel header length calculation and thus wrong memory copies to random memory locations. This problem is with newer kernels (4.x). Change-Id: Ifc2c7a4c5ea448cd57df88e51bb82a7f62c97cc6 Closes-Bug: #1685181
Configuration menu - View commit details
-
Copy full SHA for d7ea2cc - Browse repository at this point
Copy the full SHA d7ea2ccView commit details
Commits on May 10, 2017
-
A cloned skbuff should not be sent to napi_gro_receive
When skb_gro_receive merges skbs/fragments, it does not take a reference to the underlying page, thus transferring the original reference it had to the first packet of the packet bundle. This will work fine for non-cloned packets. However, for cloned packets, when the gro-ed packet is eventually freed (because the original skb was not cloned and hence reference was 1), the merged skb's frags also get freed (put_page-ed) without taking into account the other references that were held for the fragments (dataref). This will result in bad page problems. Hence, avoid GRO for cloned packets. Change-Id: I867dc6eac82e1ebc7a0f496b928d66ff62409542 Closes-Bug: #1683305
Configuration menu - View commit details
-
Copy full SHA for ccb1df4 - Browse repository at this point
Copy the full SHA ccb1df4View commit details
Commits on Jun 21, 2017
-
Fill the NH of the packet in fragment assembler
When fragments are recieved out of order, assembler code caches them till head fragment is received. While holding the packet, packet's nh is not cached to avoid taking a reference to NH. Once the head fragment is received, these out of order fragments are released for flow processing. While doing this, packet's nh is not filled if the encap is Vxlan packet as this requires a mac address lookup. For Mpls packets, label is looked up to extract the NH. Not filling the NH, is resulting in Flow lookup failure as NH id is also a key for the flow table. Failure to look up the original flow entry (of head fragment) results in either creating the new flow entry (with wrong key nh id) in Hold state, or dropping the packet without flow processing. To avoid this, bridge look up is done in the given VRF, to extract the NH. closes-bug: #1698986 Conflicts: dp-core/vr_bridge.c dp-core/vr_flow.c include/vr_bridge.h Change-Id: I62d1f0a2bd2112636a43ec00a25a9530838bd8ae
Configuration menu - View commit details
-
Copy full SHA for 100295e - Browse repository at this point
Copy the full SHA 100295eView commit details
Commits on May 30, 2018
-
vif interfaces are numbered , add check for
vif get to be called only when argument is a number . Change-Id: Iac358d6e99e38fb3a08a61e39d325aed1d5f4d5e Closes-Bug: #1752783
Configuration menu - View commit details
-
Copy full SHA for 937d329 - Browse repository at this point
Copy the full SHA 937d329View commit details