X-MimeOLE: Produced By Microsoft Exchange V6.5
Received: by onstor-exch02.onstor.net 
	id <01C78DE2.7AE15E0F@onstor-exch02.onstor.net>; Thu, 3 May 2007 17:23:46 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C78DE2.7AE15E0F"
Content-class: urn:content-classes:message
Subject: Network TXRX changes for Cougar 
Date: Thu, 3 May 2007 17:23:46 -0700
Message-ID: <BB375AF679D4A34E9CA8DFA650E2B04E018A696F@onstor-exch02.onstor.net>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Network TXRX changes for Cougar 
Thread-Index: AceN4nqjX5rhzT5jROukZ3zL2jUtPw==
From: "Jeff Miller" <jeff.miller@onstor.com>
To: "dl-Cougar" <dl-Cougar@onstor.com>

This is a multi-part message in MIME format.

------_=_NextPart_001_01C78DE2.7AE15E0F
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable


Below is an outline of network TXRX changes for Cougar to use Ethernet
mode instead of packet mode without the LUC chip.  These changes are
mainly dictated by the hardware design.  Most of the choices are in how
to organize the code for maintaining the different versions.

- Background -=20
The Ethernet hardware on the Broadcom 1480 chips used for Cougar have
CRC and Checksum capability.  Cougar does not have the LUC chip which
provided CRC/checksum for Bobcat.  The TXRX software must be modified to
support this new hardware instead of the LUC chip.
=20
- Approach -
Start with a minimum of changes to support new Cougar hardware.  This
may leave some awkward or unneeded code, but this can be cleaned up
later as part of a cleanup effort or performance tuning effort.
Hopefully there won't be much of this, but we don't cleaning and
organizing to delay initial system testing.  The intent is to be ready
for testing as soon as hardware is available.  Also, any changes that
affect Bobcat or Cheetah will be tested before Cougar hardware is
available.

- Details of changes -
Separate LUC and LMUX code from bmc12500-eth code.  Add new files for
LUC and LMUX.  Add new files for Cougar specific code.

Split non hardware specific code in sm-luc to new files.

Ring buffer interface is basically unchanged from Bobcat except for
status and option fields.  For Cougar there is a ring buffer per
interface port instead of two ports sharing one ring buffer.

Remove LUC header code.  Add replacement for packet classification code.
Read fields in Ethernet DMA descriptors to determine packet type, VLAN
tag and CRC/checksum error.  Keep packet format as is.=20

Add code to initialize interface in Ethernet mode rather than packet
mode.

Add code to use timestamp hardware feature.  This is a timestamp
prepended to the received packet at the time the packet is received by
the hardware.

Add code to make use of hardware statistics registers.

Add comments.

Remove unused code.

Reduce redundant code.

Replace hard coded numbers with #defines or variables in some cases.
Need to handle a variable number of Ethernet ports for Cougar.

Remove LUC and LMUX from UI.  Are there any other UI changes?

Cougar FP does not use bmc12500-eth code.  This is a separate task.


------_=_NextPart_001_01C78DE2.7AE15E0F
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7652.24">
<TITLE>Network TXRX changes for Cougar </TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<BR>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">Belo</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">w</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial"> is an outline</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT SIZE=3D2 =
FACE=3D"Arial">of n</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">etwork TXRX changes for =
Cougar</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial"> to use</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT SIZE=3D2 =
FACE=3D"Arial">E</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">thernet mode instead of =
packet mode</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial"> without the LUC =
chip</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT =
SIZE=3D2 FACE=3D"Arial">.</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">&nbsp; These changes are =
mainly dictated by the hardware design.&nbsp; Most</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT SIZE=3D2 =
FACE=3D"Arial">of the choices</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT SIZE=3D2 =
FACE=3D"Arial">are</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial"> in how to organize the =
code for maintaining the different versions.</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">-</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"> <FONT SIZE=3D2 =
FACE=3D"Arial">Background</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial"> - </FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">The =
Ethernet hardware on the Broadcom 1480 chips used for Cougar have CRC =
and Checksum cap</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">a</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">bil</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">i</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">ty.&nbsp; Cougar does not have the LUC chip which =
provided CRC/checksum for Bobcat.&nbsp; The TXRX software must be =
modified to support this new hardware instead of the LUC =
chip.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">&nbsp;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">- =
Approach -</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Start =
with a minimum of changes to support new Cougar hardware.&nbsp; This may =
leave some awkward or unneeded code, but this can be cleaned up later as =
part of a cleanup effort or performance tuning effort.&nbsp; Hopefully =
there won't be much of this, but we don't cleaning and organizing to =
delay initial system testing.&nbsp; The intent is to be ready for =
testing as soon as hardware is available.&nbsp; Also, any changes that =
affect Bobcat or Cheetah will be tested before Cougar hardware is =
available.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">- =
Details</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> =
<FONT SIZE=3D2 FACE=3D"Arial">of changes</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT SIZE=3D2 =
FACE=3D"Arial">-</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">Separate LUC and LMUX code from bmc12500-eth code.&nbsp; =
Add new files for LUC and LMUX.</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial"></FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us">&nbsp;<FONT SIZE=3D2 FACE=3D"Arial"></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT SIZE=3D2 =
FACE=3D"Arial">Add new files for Cougar specific =
code.</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Split =
non hardware specific code in sm-luc to new files.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Ring =
buffer interface is basically unchanged from Bobcat except for status =
and option fields.&nbsp;</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"> <FONT SIZE=3D2 FACE=3D"Arial">For Cougar =
t</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT =
SIZE=3D2 FACE=3D"Arial">here is a ring buffer per interface port instead =
of two ports sharing one ring buffer.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">Remove LUC header code.&nbsp; Add replacement for packet =
classification code.&nbsp; Read fields in</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT SIZE=3D2 =
FACE=3D"Arial">Ethernet</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial"> DMA descriptors to =
determine packet type, VLAN tag and CRC/checksum =
error.</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">&nbsp; Keep packet format =
as is.</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> =
</SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Add =
code to initialize interface in</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT SIZE=3D2 =
FACE=3D"Arial">Ethernet</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial"> mode rather than packet =
mode.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Add =
code to use timestamp hardware feature.&nbsp; This is a timestamp =
prepended to the received packet at the time the packet is received by =
the hardware.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Add =
code to make use of hardware statistics registers.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Add =
comments.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">Remove unused code.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">Reduce redundant code.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">Replace hard coded numbers with #defines or variables in =
some cases. Need to handle a variable number of</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT SIZE=3D2 =
FACE=3D"Arial">Ethernet</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial"> ports for =
Cougar.</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">Remove LUC and LMUX from UI.&nbsp; Are there any other UI =
changes?</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">Cougar FP does not use bmc12500-eth code.&nbsp; This is a =
separate task.</FONT></SPAN></P>

</BODY>
</HTML>
------_=_NextPart_001_01C78DE2.7AE15E0F--
