Re: qmgr for ixp4xx

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Krzysztof Halasa
Date: Friday, December 5, 2008 - 9:03 am

"Miguel Ángel Álvarez" <gotzoncabanes@gmail.com> writes:


Well right, this one, too. I missed this one.

So it seems the following are needed (and 128-bit LUT):

#define PKT_NUM_PIPES           1 /* 1, 2 or 4 */
#define PKT_NUM_PIPES_WRITE             0x52

#define PKT_PIPE_FIFO_SIZEW     4 /* total 4 dwords per HSS */
(= 1 word for 4E1, 2 words for 2E1, 4 for 1E1)
#define PKT_PIPE_FIFO_SIZEW_WRITE       0x53

#define CCR_NPE_HFIFO_2_HDLC            0x04000000
#define CCR_NPE_HFIFO_3_OR_4HDLC        0x08000000
(to be set in the CORE register).


The HSS uses 4 TX queues (each for 1 HDLC/packetized stream), and it
sends all used descriptors back to TXDONE queue (all 4 streams).

The same with RX, you have 4 RXFREE queues (= "RX empty" descriptors,
waiting for RX data), but when the data is ready, they are going back
to the CPU in a single RX queue. There is a stream# in the descriptor.


Yes, otherwise one HSS could grab all descriptors thus making the
other HSS (temporarily) unusable. Actually we need a TXREADY queues
per HDLC stream (4 per 4E1 port).


It does certainly conflict. For now there are no problems because MVIP
isn't supported. I guess we need 64-queue support. Fortunately, Karl
Hiramoto already has a patch for 64 queues, almost ready for merge.

We also have to make sure the queues don't conflict with the Ethernet
driver and (if used) with the crypto code.


I was using the library, though I processed it first with some custom
scripts to make it easier to read. Christian Hohnstaedt's code was
also a great help to understand what's going on.


Do you mean this?
/* Set the least significant 2 bits of the queue entry to the HDLC port number. */
qEntry |= (hdlcPortId & IX_HSSACC_QM_Q_CHAN_NUM_MASK);

They want it when the packet is back in TXDONE queue.


No, acc is a private thing of queue manager. HSS code don't know about
it.


Yes.


The descriptor will have an ID in it.


We only have ixp4xx library code. Few small minutes of my time are
not a problem when spent to help implement a useful feature.

I wonder what should I do now with all this. Perhaps integrating
Karl's 64-queue patch and making the HDLC part of HSS driver able to
be merged upstream... I will look if it does make sense.
-- 
Krzysztof Halasa
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
qmgr for ixp4xx, Miguel Ángel Álvarez, (Tue Dec 2, 11:44 am)
Re: qmgr for ixp4xx, Krzysztof Halasa, (Thu Dec 4, 2:06 pm)
Re: qmgr for ixp4xx, Miguel Ángel Álvarez, (Fri Dec 5, 1:51 am)
Re: qmgr for ixp4xx, Krzysztof Halasa, (Fri Dec 5, 9:03 am)
Re: qmgr for ixp4xx, Miguel Ángel Álvarez, (Fri Dec 5, 9:59 am)
Re: qmgr for ixp4xx, Krzysztof Halasa, (Fri Dec 5, 11:29 am)
Re: qmgr for ixp4xx, Miguel Ángel Álvarez, (Tue Dec 9, 2:48 am)
Re: qmgr for ixp4xx, Christian Hohnstaedt, (Tue Dec 9, 9:44 am)
Re: qmgr for ixp4xx, Krzysztof Halasa, (Tue Dec 9, 5:56 pm)
Re: qmgr for ixp4xx, Miguel Ángel Álvarez, (Wed Dec 10, 1:48 am)
Re: qmgr for ixp4xx, Miguel Ángel Álvarez, (Wed Dec 10, 2:04 am)
Re: qmgr for ixp4xx, Miguel Ángel Álvarez, (Wed Dec 10, 9:32 am)