1. 20 3月, 2018 7 次提交
  2. 15 3月, 2018 8 次提交
  3. 27 2月, 2018 4 次提交
  4. 15 2月, 2018 4 次提交
    • A
      i40e: Add and delete cloud filter · e284fc28
      Avinash Dayanand 提交于
      This patch provides support to add or delete cloud filter for queue
      channels created for ADq on VF.
      We are using the HW's cloud filter feature and programming it to act
      as a TC filter applied to a group of queues.
      
      There are two possible modes for a VF when applying a cloud filter
      1. Basic Mode:	Intended to apply filters that don't need a VF to be
      		Trusted. This would include the following
      		  Dest MAC + L4 port
      		  Dest MAC + VLAN + L4 port
      2. Advanced Mode: This mode is only for filters with combination that
      		  requires VF to be Trusted.
      		  Dest IP + L4 port
      
      When cloud filters are applied on a trusted VF and for some reason
      the same VF is later made as untrusted then all cloud filters
      will be deleted. All cloud filters has to be re-applied in
      such a case.
      Cloud filters are also deleted when queue channel is deleted.
      
      Testing-Hints:
      =============
      1. Adding Basic Mode filter should be possible on a VF in
         Non-Trusted mode.
      2. In Advanced mode all filters should be able to be created.
      
      Steps:
      ======
      1. Enable ADq and create TCs using TC mqprio command
      2. Apply cloud filter.
      3. Turn-off the spoof check.
      4. Pass traffic.
      
      Example:
      ========
      1. tc qdisc add dev enp4s2 root mqprio num_tc 4 map 0 0 0 0 1 2 2 3\
      	queues 2@0 2@2 1@4 1@5 hw 1 mode channel
      2. tc qdisc add dev enp4s2 ingress
      3. ethtool -K enp4s2 hw-tc-offload on
      4. ip link set ens261f0 vf 0 spoofchk off
      5. tc filter add dev enp4s2 protocol ip parent ffff: prio 1 flower\
      	dst_ip 192.168.3.5/32 ip_proto udp dst_port 25 skip_sw hw_tc 2
      Signed-off-by: NAvinash Dayanand <avinash.dayanand@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      e284fc28
    • A
      i40e: Service request to configure bandwidth for ADq on a VF · 0c483bd4
      Avinash Dayanand 提交于
      This patch handles the request from ADq enabled VF to allocate
      bandwidth to each traffic class which means for each VSI.
      Signed-off-by: NAvinash Dayanand <avinash.dayanand@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      0c483bd4
    • A
      i40e: Delete queue channel for ADq on VF · c4998aa3
      Avinash Dayanand 提交于
      This patch takes care of freeing up all the VSIs, queues and
      other ADq related software and hardware resources, when a user
      requests for deletion of ADq on VF.
      
      Example command:
      tc qdisc del dev eth0 root
      Signed-off-by: NAvinash Dayanand <avinash.dayanand@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      c4998aa3
    • A
      i40e: Enable ADq and create queue channel/s on VF · c27eac48
      Avinash Dayanand 提交于
      This patch enables ADq and creates queue channels on a VF. An ADq
      enabled VF can have up to 4 VSIs and each one of them represents
      a traffic class and this is termed as a queue channel. Each of these
      VSIs can have up to 4 queues. This patch services the request for
      enabling ADq and adds queue channel based on the TC mqprio info
      provided by the user in the VF.
      
      Initially a check is made to see if spoof check is OFF, if not ADq
      will not be enabled. PF notifies VF for a reset in order to complete
      the creation of ADq resources i.e. creation of additional VSIs and
      allocation of queues as per TC information, all in the reset path.
      
      Steps:
      ======
      1. Turn off the spoof check
      2. Enable ADq using tc mqprio command with or without rate limit.
      3. Pass traffic.
      
      Example:
      ========
      % ip link set dev eth0 vf 0 spoofchk off
      % tc qdisc add dev $iface root mqprio num_tc 4 map\
      	0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 queues\
      	4@0 4@4 4@8 4@8 hw 1 mode channel
      
      Expected results:
      =================
      1. Total number of queues for the VF should be sum of queues of all TCs.
      2. Traffic flow should be normal without errors.
      Signed-off-by: NAvinash Dayanand <avinash.dayanand@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      c27eac48
  5. 14 2月, 2018 6 次提交
  6. 13 2月, 2018 11 次提交