1. 07 12月, 2013 1 次提交
  2. 05 4月, 2012 1 次提交
    • A
      net/dcb: Add an optional max rate attribute · 08f10aff
      Amir Vadai 提交于
      Although not specified in 8021Qaz spec, it could be useful to enable drivers
      whose HW supports setting a rate limit for an ETS TC. This patch adds this
      optional attribute to DCB netlink. To use it, drivers should implement and
      register the callbacks ieee_setmaxrate and ieee_getmaxrate. The units are 64
      bits long and specified in Kbps to enable usage over both slow and very fast
      networks.
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      08f10aff
  3. 03 3月, 2012 1 次提交
  4. 07 10月, 2011 2 次提交
  5. 06 7月, 2011 1 次提交
  6. 22 6月, 2011 5 次提交
    • J
      dcb: fix return type on dcb_setapp() · ab6baf98
      John Fastabend 提交于
      Incorrect return type on dcb_setapp() this routine
      returns negative error codes. All call sites of
      dcb_setapp() assign the return value to an int already
      so no need to update drivers.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ab6baf98
    • J
      dcb: Add dcb_ieee_getapp_mask() for drivers to query APP settings · a364c8cf
      John Fastabend 提交于
      With multiple APP entries per selector and protocol drivers
      or stacks may want to pick a specific value or stripe traffic
      across many priorities. Also if an APP entry in use is
      deleted the stack/driver may want to choose from the existing
      APP entries.
      
      To facilitate this and avoid having duplicate code to walk
      the APP ring provide a routine dcb_ieee_getapp_mask() to
      return a u8 bitmask of all priorities set for the specified
      selector and protocol. This routine and bitmask is a helper
      for DCB kernel users.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a364c8cf
    • J
      dcb: Add ieee_dcb_delapp() and dcb op to delete app entry · f9ae7e4b
      John Fastabend 提交于
      Now that we allow multiple IEEE App entries we need a way
      to remove specific entries. To do this add the ieee_dcb_delapp()
      routine.
      
      Additionaly drivers may need to remove the APP entry from
      their firmware tables. Add dcb ops routine to handle this.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f9ae7e4b
    • J
      dcb: Add ieee_dcb_setapp() to be used for IEEE 802.1Qaz APP data · b6db2174
      John Fastabend 提交于
      This adds a setapp routine for IEEE802.1Qaz encoded APP data types.
      The IEEE 802.1Qaz spec encodes the priority bits differently and
      allows for multiple APP data entries of the same selector and
      protocol. Trying to force these to use the same set routines was
      becoming tedious. Furthermore, userspace could probably enforce
      the correct semantics, but expecting drivers to do this seems
      error prone in the firmware case.
      
      For these reasons add ieee_dcb_setapp() that understands the
      IEEE 802.1Qaz encoded form.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b6db2174
    • J
      net: dcbnl, add multicast group for DCB · 314b4778
      John Fastabend 提交于
      Now that dcbnl is being used in many cases by more
      than a single agent it is beneficial to be notified
      when some entity either driver or user space has
      changed the DCB attributes.
      
      Today applications either end up polling the interface
      or relying on a user space database to maintain the DCB
      state and post events. Polling is a poor solution for
      obvious reasons. And relying on a user space database
      has its own downside. Namely it has created strange
      boot dependencies requiring the database be populated
      before any applications dependent on DCB attributes
      starts or the application goes into a polling loop.
      Populating the database requires negotiating link
      setting with the peer and can take anywhere from less
      than a second up to a few seconds depending on the switch
      implementation.
      
      Perhaps more importantly if another application or an
      embedded agent sets a DCB link attribute the database
      has no way of knowing other than polling the kernel.
      This prevents applications from responding quickly to
      changes in link events which at least in the FCoE case
      and probably any other protocols expecting a lossless
      link may result in IO errors.
      
      By adding a multicast group for DCB we have clean way
      to disseminate kernel DCB link attributes up to user
      space. Avoiding the need for user space to maintain
      a coherant database and disperse events that potentially
      do not reflect the current link state.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      314b4778
  7. 03 3月, 2011 2 次提交
  8. 01 1月, 2011 4 次提交
    • S
      dcbnl: adding DCBX feature flags get-set · ea45fe4e
      Shmulik Ravid 提交于
      Adding a pair of set-get routines to dcbnl for setting the negotiation
      flags of the various DCB features. Conforms to the CEE flavor of DCBX
      The user sets these flags (enable, advertise, willing) for each feature
      to be used by the DCBX engine. The 'get' routine returns which of the
      features is enabled after the negotiation.
      
      This patch is dependent on the following patches:
      [net-next-2.6 PATCH 1/3] dcbnl: add support for ieee8021Qaz attributes
      [net-next-2.6 PATCH 2/3] dcbnl: add appliction tlv handlers
      [net-next-2.6 PATCH 3/3] net_dcb: add application notifiers
      Signed-off-by: NShmulik Ravid <shmulikr@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ea45fe4e
    • S
      dcbnl: adding DCBX engine capability · 6241b625
      Shmulik Ravid 提交于
      Adding an optional DCBX capability and a pair for get-set routines for
      setting the device DCBX mode. The DCBX capability is a bit field of
      supported attributes. The user is expected to set the DCBX mode with a
      subset of the advertised attributes.
      
      This patch is dependent on the following patches:
      [net-next-2.6 PATCH 1/3] dcbnl: add support for ieee8021Qaz attributes
      [net-next-2.6 PATCH 2/3] dcbnl: add appliction tlv handlers
      [net-next-2.6 PATCH 3/3] net_dcb: add application notifiers
      Signed-off-by: NShmulik Ravid <shmulikr@broadcom.com>
      Acked-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6241b625
    • J
      dcbnl: add appliction tlv handlers · 9ab933ab
      John Fastabend 提交于
      This patch adds application tlv handlers. Networking stacks
      may use the application priority to set the skb priority of
      their stack using the negoatiated dcbx priority.
      
      This patch provides the dcb_{get|set}app() routines for the
      stack to query these parameters. Notice lower layer drivers
      can use the dcbnl_ops routines if additional handling is
      needed. Perhaps in the firmware case for example
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NShmulik Ravid <shmulikr@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9ab933ab
    • J
      dcbnl: add support for ieee8021Qaz attributes · 3e29027a
      John Fastabend 提交于
      The IEEE8021Qaz is the IEEE standard version of CEE. The
      standard has had enough significant changes from the CEE
      version that many of the CEE attributes have no meaning
      in the new spec or do not easily map to IEEE standards.
      
      Rather then attempt to create a complicated mapping
      between CEE and IEEE standards this patch adds a nested
      IEEE attribute to the list of DCB attributes. The policy
      is,
      
      	[DCB_ATTR_IFNAME]
      	[DCB_ATTR_STATE]
      	...
      	[DCB_ATTR_IEEE]
      		[DCB_ATTR_IEEE_ETS]
      		[DCB_ATTR_IEEE_PFC]
      		[DCB_ATTR_IEEE_APP_TABLE]
      			[DCB_ATTR_IEEE_APP]
      			...
      
      The following dcbnl_rtnl_ops routines were added to handle
      the IEEE standard,
      
      	int (*ieee_getets) (struct net_device *, struct ieee_ets *);
      	int (*ieee_setets) (struct net_device *, struct ieee_ets *);
      	int (*ieee_getpfc) (struct net_device *, struct ieee_pfc *);
      	int (*ieee_setpfc) (struct net_device *, struct ieee_pfc *);
      	int (*ieee_getapp) (struct net_device *, struct dcb_app *);
      	int (*ieee_setapp) (struct net_device *, struct dcb_app *);
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3e29027a
  9. 01 9月, 2009 1 次提交
  10. 22 12月, 2008 1 次提交
  11. 21 11月, 2008 5 次提交