summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* net: stmmac: dwc-qos: Split out ->probe() and ->remove()Thierry Reding2017-03-131-26/+98
| | | | | | | | | | | | | Split out the binding specific parts of ->probe() and ->remove() to enable the driver to support variants of the binding. This is useful in order to keep backwards-compatibility while making it easy for a sub- driver to deal only with the updated bindings rather than having to add compatibility quirks all over the place. Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-By: Joao Pinto <jpinto@synopsys.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: stmmac: Program RX queue size and flow controlThierry Reding2017-03-132-2/+62
| | | | | | | | Program the receive queue size based on the RX FIFO size and enable hardware flow control for large FIFOs. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: stmmac: Parse FIFO sizes from feature registersThierry Reding2017-03-134-0/+13
| | | | | | | | | | New version of this core encode the FIFO sizes in one of the feature registers. Use these sizes as default, but still allow device tree to override them for backwards compatibility. Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: stmmac: Check for DMA mapping errorsThierry Reding2017-03-131-0/+2
| | | | | | | | When DMA mapping an SKB fragment, the mapping must be checked for errors, otherwise the DMA debug code will complain upon unmap. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: stmmac: Balance PTP reference clock enable/disableThierry Reding2017-03-132-1/+4
| | | | | | | | | | clk_prepare_enable() and clk_disable_unprepare() for this clock aren't properly balanced, which can trigger a WARN_ON() in the common clock framework. Reviewed-By: Joao Pinto <jpinto@synopsys.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: stmmac: Disable PTP reference clock on errorThierry Reding2017-03-131-0/+8
| | | | | | | | If an error occurs while opening the device, make sure to disable the PTP reference clock. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: stmmac: Stop PHY and remove TX timer on errorThierry Reding2017-03-131-1/+5
| | | | | | | | If an error occurs while opening the device, make sure that both the TX timer and the PHY are properly cleaned up. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: stmmac: Rename clk_ptp_ref clock to ptp_refThierry Reding2017-03-132-4/+4
| | | | | | | | | | | | There aren't currently any users of the "clk_ptp_ref", but there are other references to "ptp_ref", so I'm leaning towards considering that a typo. Fix it. Cc: Mark Rutland <mark.rutland@arm.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: devicetree@vger.kernel.org Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* vxlan: use appropriate family on L3 missVincent Bernat2017-03-131-1/+1
| | | | | | | | | When sending a L3 miss, the family is set to AF_INET even for IPv6. This causes userland (eg "ip monitor") to be confused. Ensure we send the appropriate family in this case. For L2 miss, keep using AF_INET. Signed-off-by: Vincent Bernat <vincent@bernat.im> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: Eliminate duplicated codes by creating one new function in_dev_select_addrGao Feng2017-03-131-14/+18
| | | | | | | | | There are two duplicated loops codes which used to select right address in current codes. Now eliminate these codes by creating one new function in_dev_select_addr. Signed-off-by: Gao Feng <fgao@ikuai8.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch ↵David S. Miller2017-03-138-25/+585
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'sctp-rx-side-stream-reconf-asoc-reset-and-add-streams-and-response' Xin Long says: ==================== sctp: add receiver-side procedures for stream reconf asoc reset and add streams and response Patch 2/7, 4/7, 5/7, 6/7 are to implement the process of asoc reset request, add streams requests and all kinds of responses. Patch 1/7 and 3/7 are ahead of 2/7 and 4/7 to add two event notification for asoc reset and add streams. Patch 7/7 is the last patch for implementing rfc6525 sctp stream reconf to add sysctl and sockopt interface for users to enable sctp stream reconf. After this patchset, sctp stream reconf will be able to work as rfc6525. v1->v2: - put these into a smaller group. - rename the titles of the commits and improve some changelogs. - improve sctp_chunk_lookup_strreset_param and reuse it in patch 4/7. - process addstrm outreq as the ack of in addstrm inreq if strreset_chunk is not NULL in patch 4/7. - remove the stream alloc when sending addstrm inreq, and the process in peer will response it by sending a addstrm out request back in patch 5/7. - adjust the process of addstrm in resp to fit in the codes that only alloc streams through addstrm outreq in patch 6/7. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * sctp: add get and set sockopt for reconf_enableXin Long2017-03-133-0/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patchset is to add SCTP_RECONFIG_SUPPORTED sockopt, it would set and get asoc reconf_enable value when asoc_id is set, or it would set and get ep reconf_enalbe value if asoc_id is 0. It is also to add sysctl interface for users to set the default value for reconf_enable. After this patch, stream reconf will work. Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * sctp: implement receiver-side procedures for the Reconf Response ParameterXin Long2017-03-133-3/+161
| | | | | | | | | | | | | | | | | | | | | | | | This patch is to implement Receiver-Side Procedures for the Re-configuration Response Parameter in rfc6525 section 5.2.7. sctp_process_strreset_resp would process the response for any kind of reconf request, and the stream reconf is applied only when the response result is success. Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * sctp: implement receiver-side procedures for the Add Incoming Streams ↵Xin Long2017-03-133-12/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Request Parameter This patch is to implement Receiver-Side Procedures for the Add Incoming Streams Request Parameter described in rfc6525 section 5.2.6. It is also to fix that it shouldn't have add streams when sending addstrm in request, as the process in peer will handle it by sending a addstrm out request back. Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * sctp: implement receiver-side procedures for the Add Outgoing Streams ↵Xin Long2017-03-133-10/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | Request Parameter This patch is to add Receiver-Side Procedures for the Add Outgoing Streams Request Parameter described in section 5.2.5. It is also to improve sctp_chunk_lookup_strreset_param, so that it can be used for processing addstrm_out request. Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * sctp: add support for generating add stream change event notificationXin Long2017-03-133-0/+47
| | | | | | | | | | | | | | | | This patch is to add Stream Change Event described in rfc6525 section 6.1.3. Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * sctp: implement receiver-side procedures for the SSN/TSN Reset Request ParameterXin Long2017-03-133-0/+86
| | | | | | | | | | | | | | | | | | | | | | This patch is to implement Receiver-Side Procedures for the SSN/TSN Reset Request Parameter described in rfc6525 section 6.2.4. The process is kind of complicate, it's wonth having some comments from section 6.2.4 in the codes. Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * sctp: add support for generating assoc reset event notificationXin Long2017-03-133-0/+47
|/ | | | | | | | This patch is to add Association Reset Event described in rfc6525 section 6.1.2. Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* liquidio: optimize DMA in NUMA systemsVSR Burru2017-03-135-22/+9Star
| | | | | | | | | | | | | Optimize DMA in NUMA systems by allocating memory from NUMA node that NIC is plugged in to; DMA will no longer cross NUMA nodes. If NIC IRQs are pinned to a local CPU, that CPU's access to the DMA'd data is also optimized. Signed-off-by: VSR Burru <veerasenareddy.burru@cavium.com> Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com> Signed-off-by: Raghu Vatsavayi <raghu.vatsavayi@cavium.com> Signed-off-by: Satanand Burla <satananda.burla@cavium.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'netvsc-fix-module-removal-hangs'David S. Miller2017-03-131-16/+4Star
|\ | | | | | | | | | | | | | | | | | | | | | | | | Stephen Hemminger says: ==================== netvsc: fix module removal hangs A couple of patches are necessary to make netvsc driver module removable again. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * netvsc: fix hang on netvsc module removalstephen hemminger2017-03-131-2/+2
| | | | | | | | | | | | | | | | | | | | The code in netvsc_device_remove was incorrectly calling napi_disable repeatedly on the same element. This would cause attempts to remove netvsc module to hang. Fixes: 2506b1dc4bbe ("netvsc: implement NAPI") Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * netvsc: need napi scheduled during removalstephen hemminger2017-03-131-14/+2Star
|/ | | | | | | | | | Since rndis_halt_device waits until all outstanding sends and receives are completed. Netvsc device needs to still schedule NAPI to see those completions. Fixes: 2506b1dc4bbe ("netvsc: implement NAPI") Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'dpaa_eth-next' of git://git.freescale.com/ppc/upstream/linuxDavid S. Miller2017-03-135-47/+248
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Madalin Bucur says: ==================== QorIQ DPAA 1 updates This patch set introduces a series of fixes and features to the DPAA 1 drivers. Besides activating hardware Rx checksum offloading, four traffic classes are added for Tx traffic prioritisation. changes from v1: added patch to enable context-A stashing ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * dpaa_eth: enable context-A stashingMadalin Bucur2017-03-091-1/+2
| | | | | | | | Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
| * dpaa_eth: enable multiple Tx traffic classesCamelia Groza2017-03-091-0/+36
| | | | | | | | | | | | | | | | | | Implement the setup_tc ndo to configure prioritised Tx traffic classes. Priorities range from 0 (lowest) to 3 (highest). The driver assigns NR_CPUS queues to each traffic class. Signed-off-by: Camelia Groza <camelia.groza@nxp.com> Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
| * dpaa_eth: add four prioritised Tx traffic classesCamelia Groza2017-03-092-9/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | Each traffic class corresponds to a WQ priority level. The number of Tx netdev queues and frame queues is increased to NR_CPUS queues for each traffic class. In addition, the priority of the Rx, Error and Conf queues is lowered but their order is maintained. By default, only one traffic class is enabled, only the low priority Tx queues are used and only the corresponding netdev queues are advertised. Signed-off-by: Camelia Groza <camelia.groza@nxp.com> Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
| * dpaa_eth: do not ignore port api return valueMadalin Bucur2017-03-091-22/+43
| | | | | | | | | | | | Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
| * dpaa_eth: enable Rx checksum offloadMadalin Bucur2017-03-091-2/+27
| | | | | | | | | | | | Use the FMan HW parser L4CV flag to offload Rx checksumming. Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
| * dpaa_eth: remove redundant initializationMadalin Bucur2017-03-091-1/+1
| | | | | | | | Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
| * fsl/fman: enlarge FIFO to allow for the 5th portMadalin Bucur2017-03-091-1/+1
| | | | | | | | Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
| * fsl/fman: remove wrong freeMadalin Bucur2017-03-091-3/+1Star
| | | | | | | | | | | | Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
| * fsl/fman: set HW parser as BMI next engineMadalin Bucur2017-03-092-3/+90
| | | | | | | | | | | | Enable the HW parser for all DPAA interfaces. Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
| * fsl/fman: parse result data is big endianMadalin Bucur2017-03-091-5/+5
| | | | | | | | Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
* | net: ipv6: Add early demux handler for UDP unicastsubashab@codeaurora.org2017-03-131-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While running a single stream UDPv6 test, we observed that amount of CPU spent in NET_RX softirq was much greater than UDPv4 for an equivalent receive rate. The test here was run on an ARM64 based Android system. On further analysis with perf, we found that UDPv6 was spending significant time in the statistics netfilter targets which did socket lookup per packet. These statistics rules perform a lookup when there is no socket associated with the skb. Since there are multiple instances of these rules based on UID, there will be equal number of lookups per skb. By introducing early demux for UDPv6, we avoid the redundant lookups. This also helped to improve the performance (800Mbps -> 870Mbps) on a CPU limited system in a single stream UDPv6 receive test with 1450 byte sized datagrams using iperf. v1->v2: Use IPv6 cookie to validate dst instead of 0 as suggested by Eric Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: sched: make default fifo qdiscs appear in the dumpJiri Kosina2017-03-1318-17/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original reason [1] for having hidden qdiscs (potential scalability issues in qdisc_match_from_root() with single linked list in case of large amount of qdiscs) has been invalidated by 59cc1f61f0 ("net: sched: convert qdisc linked list to hashtable"). This allows us for bringing more clarity and determinism into the dump by making default pfifo qdiscs visible. We're not turning this on by default though, at it was deemed [2] too intrusive / unnecessary change of default behavior towards userspace. Instead, TCA_DUMP_INVISIBLE netlink attribute is introduced, which allows applications to request complete qdisc hierarchy dump, including the ones that have always been implicit/invisible. Singleton noop_qdisc stays invisible, as teaching the whole infrastructure about singletons would require quite some surgery with very little gain (seeing no qdisc or seeing noop qdisc in the dump is probably setting the same user expectation). [1] http://lkml.kernel.org/r/1460732328.10638.74.camel@edumazet-glaptop3.roam.corp.google.com [2] http://lkml.kernel.org/r/20161021.105935.1907696543877061916.davem@davemloft.net Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: hyperv: use new api ethtool_{get|set}_link_ksettingsPhilippe Reynes2017-03-131-18/+21
| | | | | | | | | | | | | | | | | | | | | | | | The ethtool api {get|set}_settings is deprecated. We move this driver to new api {get|set}_link_ksettings. As I don't have the hardware, I'd be very pleased if someone may test this patch. Signed-off-by: Philippe Reynes <tremyfr@gmail.com> Tested-by: Stephen Hemminger <sthemmin@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: fjes: use new api ethtool_{get|set}_link_ksettingsPhilippe Reynes2017-03-131-10/+9Star
| | | | | | | | | | | | | | | | | | | | | | The ethtool api {get|set}_settings is deprecated. We move this driver to new api {get|set}_link_ksettings. As I don't have the hardware, I'd be very pleased if someone may test this patch. Signed-off-by: Philippe Reynes <tremyfr@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: via: via-velocity: use new api ethtool_{get|set}_link_ksettingsPhilippe Reynes2017-03-131-27/+35
| | | | | | | | | | | | | | | | | | | | | | The ethtool api {get|set}_settings is deprecated. We move this driver to new api {get|set}_link_ksettings. As I don't have the hardware, I'd be very pleased if someone may test this patch. Signed-off-by: Philippe Reynes <tremyfr@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: via: via-rhine: use new api ethtool_{get|set}_link_ksettingsPhilippe Reynes2017-03-131-6/+8
| | | | | | | | | | | | | | | | | | | | | | The ethtool api {get|set}_settings is deprecated. We move this driver to new api {get|set}_link_ksettings. As I don't have the hardware, I'd be very pleased if someone may test this patch. Signed-off-by: Philippe Reynes <tremyfr@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: intel: ixgbe: use new api ethtool_{get|set}_link_ksettingsPhilippe Reynes2017-03-131-77/+91
| | | | | | | | | | | | | | | | | | | | | | The ethtool api {get|set}_settings is deprecated. We move this driver to new api {get|set}_link_ksettings. As I don't have the hardware, I'd be very pleased if someone may test this patch. Signed-off-by: Philippe Reynes <tremyfr@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: tundra: tsi108: use new api ethtool_{get|set}_link_ksettingsPhilippe Reynes2017-03-131-6/+8
| | | | | | | | | | | | | | | | | | | | | | The ethtool api {get|set}_settings is deprecated. We move this driver to new api {get|set}_link_ksettings. As I don't have the hardware, I'd be very pleased if someone may test this patch. Signed-off-by: Philippe Reynes <tremyfr@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Merge branch 'fib-notifications-cleanup'David S. Miller2017-03-105-103/+113
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Jiri Pirko says: ==================== ipv4: fib: FIB notifications cleanup Ido says: The first patch moves the core FIB notification code to a separate file, so that code related to FIB rules is placed in fib_rules.c and not fib_trie.c. The reason for the change will become even more apparent in follow-up patchset where we extend the FIB rules notifications. Second patch removes a redundant argument. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * | ipv4: fib: Remove redundant argumentIdo Schimmel2017-03-104-20/+13Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We always pass the same event type to fib_notify() and fib_rules_notify(), so we can safely drop this argument. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Acked-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | ipv4: fib: Move FIB notification code to a separate fileIdo Schimmel2017-03-105-96/+113
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the code concerned with the FIB notification chain currently resides in fib_trie.c, but this isn't really appropriate, as the FIB notification chain is also used for FIB rules. Therefore, it makes sense to move the common FIB notification code to a separate file and have it export the relevant functions, which can be invoked by its different users (e.g., fib_trie.c, fib_rules.c). Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Acked-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Merge branch 'mlxsw-vrf-offload-prep'David S. Miller2017-03-104-849/+948
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Jiri Pirko says: ==================== mlxsw: Preparations for VRF offload Ido says: This patchset aims to prepare the mlxsw driver for VRF offload. The follow-up patchsets that introduce VRF support can be found here: https://github.com/idosch/linux/tree/idosch-next The first four patches are mainly concerned with the netdevice notification block. There are no functional changes, but merely restructuring to more easily integrate VRF enslavement. Patches 5-10 remove various assumptions throughout the code about a single virtual router (VR) and also restructure the internal data structures to more accurately represent the device's operation. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * | mlxsw: spectrum_router: Make abort mechanism VR-awareIdo Schimmel2017-03-101-12/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the abort mechanism is invoked it binds the first virtual router (VR) to an LPM tree and inserts a default route to direct packets to the CPU. With VRFs, we can have router interfaces (RIFs) bound to multiple VRs, so we need to make sure packets are trapped from all VRs and not just the first one. Upon abort invocation, bind all active VRs to the same LPM tree and insert a default route in each. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | mlxsw: spectrum_router: Explicitly Associate RIFs with VRsIdo Schimmel2017-03-103-18/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Up until now we implicitly associated all the router interfaces (RIFs) with the first virtual router (VR). This must be changed in order to enable VRF offload. Otherwise, a packet received via a VRF slave would do a FIB lookup in the same table used by other VRFs. Instead, bind the RIF to a VR according to the table where FIB lookup should be performed for packets received via the RIF. Currently, we only care about the MAIN and LOCAL tables (which we squash together). Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | mlxsw: spectrum_router: Refactor virtual router handlingIdo Schimmel2017-03-102-151/+180
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A virtual router (VR) is an entity within the device to which routing tables and interfaces can be bound to. It can be used to implement VRFs. In the initial implementation we associated the VR with a specific protocol (e.g., IPv4) and an LPM tree. However, this isn't really accurate, as the same VR can be used for both IPv4 and IPv6 traffic, by binding a different LPM tree to a {VR, Proto} pair. This patch aims to restructure the VR code according to the above logic, so that VRs are more accurately represented by the driver's data structures. The main motivation behind this change is to prepare the driver for VRF offload. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | mlxsw: spectrum_router: Simplify LPM tree allocationIdo Schimmel2017-03-101-13/+9Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When looking for a new LPM tree we should always consider all the unused trees. It doesn't matter if the new tree is required due to changes in currently used prefixes inside an existing routing table or because a route was inserted into an empty table. Both cases are functionally identical and therefore should be treated the same. When looking for a new LPM tree, consider all unused trees and don't reserve trees for specific cases. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | mlxsw: spectrum_router: Place RIF related code with router codeIdo Schimmel2017-03-103-642/+644
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The inetaddr notification block is currently implemented in the main driver file, but this isn't really appropriate, as it mainly creates and destroys router interfaces (RIFs) which belong with the rest of the router code. This will become even more apparent later on when we'll need to bind these RIFs to virtual routers according to the VRF's table. Structure the driver better and prevent unnecessary function exports by moving the RIF related code with the rest of the router code. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>