PARALYZED AAL0/AAL5 CHANNELS.

********************************************************* ******** PROBLEM: PARALYZED AAL0/AAL5 CHANNELS. ********* *********************************************************

I work with FCC1 for UTOPIA bus, FCC2 and FCC3 are for Ethernet. For every group_of_AAL0_cells / AAL5_frame received on FCC1, preconfigured Ethernet header is added and the resulting buffer is sent to FCC2/FCC3.

I use two groups of ATM channels: 42 AAL0 channels and 42 AAL5 channels. All of the channels are internal. My ATM traffic creator (AdTech) transmits AAL5 frames with payload 1 to both AAL0 and AAL5 channels.

When I start transmission from AdTech, after some seconds a number of AAL5 channels (~10-20% of all AAL5 channels) are paralyzed (explained further). After 30+ minutes a number of AAL0 channels (~5% of all AAL0 channels) are paralyzed (explained further).

By 'paralyzed' I mean that the channel stops performing RX: (*) I peek some paralyzed AAL5 channel (just not to wait long time to see AAL0 paralyzed) and perform TX from AdTech only to this channel. RX/TX interrupt circular table is empty (nullified), INTQ_PTR is frozen, RxBD table if full normal RxBDs.

************************************************************** ******** Mem dump of FCC1 config along with FCC1 ATM config **

Addr 0x1f008400 0x00000000 0x00003214 0x0318d328 0x00000000 Addr 0x1f008410 0x000b0084 0x00020000 0x0980004c 0x00000000 Addr 0x1f008420 0x00000000 0x00000000 0xb5600000 0x00000000 Addr 0x1f008430 0x7ed156f4 0x01000002 0x1e80004a 0x00000000 Addr 0x1f008440 0x91009140 0x00000000 0x15402a80 0x00000000 Addr 0x1f008450 0x0fffe000 0x1000e000 0x10006000 0x00000000 Addr 0x1f008460 0x0000b560 0x0000b580 0x0000b540 0x03000000 Addr 0x1f008470 0x1f00b5a0 0x10018000 0x1f00b5a0 0x10018000 Addr 0x1f008480 0x01ff1800 0x03010404 0x004a0000 0x00000000 Addr 0x1f008490 0xffffffff 0xdebb20e3 0x00000000 0x00000000 Addr 0x1f0084a0 0xb5000034 0x6a6a6a6a 0x00000000 0x00000000 Addr 0x1f0084b0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f0084c0 0x1c000001 0x02bc9900 0x18000001 0x00000000 Addr 0x1f0084d0 0x00000000 0x00000000 0x0316a040 0x00000000 Addr 0x1f0084e0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f0084f0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f008500 0xb4c0b4e0 0x00000640 0x30810000 0x03156230 Addr 0x1f008510 0x90000000 0x02c29900 0x30040009 0x03157230 Addr 0x1f008520 0x5c00003c 0x00000000 0x03156f68 0x031578c8 Addr 0x1f008530 0xdebb20e3 0xffffffff 0x00000000 0x5c000000 Addr 0x1f008540 0x00000000 0xdebb20e3 0xffffffff 0x00000000 Addr 0x1f008550 0x00000000 0x00000000 0x000f0000 0x00000000 Addr 0x1f008560 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f008570 0x05f6ffff 0xffffffff 0x00000000 0x00000000 Addr 0x1f008580 0x031578a8 0x30405c00 0x031578b0 0x30005c00 Addr 0x1f008590 0x031578b8 0x30405c00 0x031578c0 0x30005c00 Addr 0x1f0085a0 0x00000000 0x00000000 0x00400000 0x00000000 Addr 0x1f0085b0 0xb4800000 0x00000000 0x05f405f4 0x05f405f4 Addr 0x1f0085c0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f0085d0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f0085e0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f0085f0 0x00000000 0x00000000 0x00000000 0x00010001

**************************************************************

Assuming IMMR= 0x1f000000 INT_RCT_BASE = 0x0000 INT_TCT_BASE = 0x1540 BD_BASE_EXT = 0x03000000

************************************************************** ******** Mem dump of internal RCT tables in DPRAM ************

Addr 0x1f000000 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000010 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000020 0x30000000 0x00000000 0x00000000 0x00000040 Addr 0x1f000030 0x00000000 0x00000000 0x00000000 0x00429260 Addr 0x1f000040 0x30010000 0x00000000 0x0cf7c7c3 0x02200040 Addr 0x1f000050 0x00000000 0x00000000 0x00800034 0x00159260 Addr 0x1f000060 0x30010000 0x00000000 0x0cf7c7c5 0x01900040 Addr 0x1f000070 0x00000000 0x00000000 0x00800034 0x00159da0 Addr 0x1f000080 0x30010000 0x00000000 0x0cf7c7c6 0x02680040 Addr 0x1f000090 0x00000000 0x00000000 0x00800034 0x0015a8e0 Addr 0x1f0000a0 0x30010000 0x00000000 0x0cf7c7c7 0x01900040 Addr 0x1f0000b0 0x00000000 0x00000000 0x00800034 0x0015b420 Addr 0x1f0000c0 0x30010000 0x00000000 0x0cf7c7c9 0x01000040 Addr 0x1f0000d0 0x00000000 0x00000000 0x00800034 0x0015bf60 Addr 0x1f0000e0 0x30010000 0x00000000 0x0cf7c7ca 0x01000040 Addr 0x1f0000f0 0x00000000 0x00000000 0x00800034 0x0015caa0 Addr 0x1f000100 0x30010000 0x00000000 0x0cf7c7cc 0x00280040 Addr 0x1f000110 0x00000000 0x00000000 0x00800034 0x0015d5e0 Addr 0x1f000120 0x30010000 0x00000000 0x0cf7c7cd 0x02200040 Addr 0x1f000130 0x00000000 0x00000000 0x00800034 0x0015e120 Addr 0x1f000140 0x30010000 0x00000000 0x0cf7c7ce 0x00f80040 Addr 0x1f000150 0x00000000 0x00000000 0x00800034 0x0015ec60 Addr 0x1f000160 0x30010000 0x00000000 0x0cf7c7d0 0x02f80040 Addr 0x1f000170 0x00000000 0x00000000 0x00800034 0x0015f7a0 Addr 0x1f000180 0x30010000 0x00000000 0x0cf7c7d1 0x02f00040 Addr 0x1f000190 0x00000000 0x00000000 0x00800034 0x001602e0 Addr 0x1f0001a0 0x30010000 0x00000000 0x0cf7c7d3 0x00200040 Addr 0x1f0001b0 0x00000000 0x00000000 0x00800034 0x00160e20 Addr 0x1f0001c0 0x30010000 0x00000000 0x0cf7c7d4 0x01d80040 Addr 0x1f0001d0 0x00000000 0x00000000 0x00800034 0x00161960 Addr 0x1f0001e0 0x30010000 0x00000000 0x0cf7c7d5 0x02a80040 Addr 0x1f0001f0 0x00000000 0x00000000 0x00800034 0x001624a0 Addr 0x1f000200 0x30010000 0x00000000 0x0cf7c7d7 0x01000040 Addr 0x1f000210 0x00000000 0x00000000 0x00800034 0x00162fe0 Addr 0x1f000220 0x30010000 0x00000000 0x0cf7c7d8 0x01500040 Addr 0x1f000230 0x00000000 0x00000000 0x00800034 0x00163b20 Addr 0x1f000240 0x30010000 0x00000000 0x0cf7c7da 0x01d80040 Addr 0x1f000250 0x00000000 0x00000000 0x00800034 0x00164660 Addr 0x1f000260 0x30010000 0x00000000 0x0cf7c7db 0x03000040 Addr 0x1f000270 0x00000000 0x00000000 0x00800034 0x001651a0 Addr 0x1f000280 0x30010000 0x00000000 0x0cf7c7dc 0x01400040 Addr 0x1f000290 0x00000000 0x00000000 0x00800034 0x00165ce0 Addr 0x1f0002a0 0x30010000 0x00000000 0x0cf7c7de 0x00b00040 Addr 0x1f0002b0 0x00000000 0x00000000 0x00800034 0x00166820 Addr 0x1f0002c0 0x30010000 0x00000000 0x0cf7c7df 0x03380040 Addr 0x1f0002d0 0x00000000 0x00000000 0x00800034 0x00167360 Addr 0x1f0002e0 0x30010000 0x00000000 0x0cf7c7e1 0x03380040 Addr 0x1f0002f0 0x00000000 0x00000000 0x00800034 0x00167ea0 Addr 0x1f000300 0x30010000 0x00000000 0x0cf7c7e2 0x02f00040 Addr 0x1f000310 0x00000000 0x00000000 0x00800034 0x001689e0 Addr 0x1f000320 0x30010000 0x00000000 0x0cf7c7e4 0x02200040 Addr 0x1f000330 0x00000000 0x00000000 0x00800034 0x00169520 Addr 0x1f000340 0x30010000 0x00000000 0x0cf7c7e5 0x00680040 Addr 0x1f000350 0x00000000 0x00000000 0x00800034 0x0016a060 Addr 0x1f000360 0x30010000 0x00000000 0x0cf7c7e6 0x00700040 Addr 0x1f000370 0x00000000 0x00000000 0x00800034 0x0016aba0 Addr 0x1f000380 0x30010000 0x00000000 0x0cf7c7e8 0x00680040 Addr 0x1f000390 0x00000000 0x00000000 0x00800034 0x0016b6e0 Addr 0x1f0003a0 0x30010000 0x00000000 0x0cf7c7e9 0x01880040 Addr 0x1f0003b0 0x00000000 0x00000000 0x00800034 0x0016c220 Addr 0x1f0003c0 0x30010000 0x00000000 0x0cf7c7eb 0x02600040 Addr 0x1f0003d0 0x00000000 0x00000000 0x00800034 0x0016cd60 Addr 0x1f0003e0 0x30010000 0x00000000 0x0cf7c7ec 0x03380040 Addr 0x1f0003f0 0x00000000 0x00000000 0x00800034 0x0016d8a0 Addr 0x1f000400 0x30010000 0x00000000 0x0cf7c7ed 0x03380040 Addr 0x1f000410 0x00000000 0x00000000 0x00800034 0x0016e3e0 Addr 0x1f000420 0x30010000 0x00000000 0x0cf7c7ef 0x02600040 Addr 0x1f000430 0x00000000 0x00000000 0x00800034 0x0016ef20 Addr 0x1f000440 0x30010000 0x00000000 0x0cf7c7f0 0x01000040 Addr 0x1f000450 0x00000000 0x00000000 0x00800034 0x0016fa60 Addr 0x1f000460 0x30010000 0x00000000 0x0cf7c7f2 0x01880040 Addr 0x1f000470 0x00000000 0x00000000 0x00800034 0x001705a0 Addr 0x1f000480 0x30010040 0x00000000 0x0a279b4e 0x01b00040 Addr 0x1f000490 0x00000000 0x00000000 0x00800034 0x001710e0 Addr 0x1f0004a0 0x30010000 0x00000000 0x0cf7c7f5 0x00b80040 Addr 0x1f0004b0 0x00000000 0x00000000 0x00800034 0x00171c20 Addr 0x1f0004c0 0x30010040 0x00000000 0x0a279b51 0x02880040 Addr 0x1f0004d0 0x00000000 0x00000000 0x00800034 0x00172760 Addr 0x1f0004e0 0x30010040 0x00000000 0x0a279b53 0x01b00040 Addr 0x1f0004f0 0x00000000 0x00000000 0x00800034 0x001732a0 Addr 0x1f000500 0x30010000 0x00000000 0x0cf7c7f9 0x00280040 Addr 0x1f000510 0x00000000 0x00000000 0x00800034 0x00173de0 Addr 0x1f000520 0x30010000 0x00000000 0x0cf7c7fa 0x01400040 Addr 0x1f000530 0x00000000 0x00000000 0x00800034 0x00174920 Addr 0x1f000540 0x30010040 0x00000000 0x0a279b57 0x00d80040 Addr 0x1f000550 0x00000000 0x00000000 0x00800034 0x00175460 Addr 0x1f000560 0x30010040 0x00000000 0x0a279b58 0x01b00040 Addr 0x1f000570 0x00000000 0x00000000 0x00800034 0x00175fa0 Addr 0x1f000580 0x30310002 0x00000000 0x0cf7c800 0x00280030 Addr 0x1f000590 0x00000000 0x06900000 0x00c006c0 0x00176ae0 Addr 0x1f0005a0 0x30310002 0x00000000 0x0cf7c801 0x00200030 Addr 0x1f0005b0 0x00000000 0x06900000 0x00c006c0 0x00177620 Addr 0x1f0005c0 0x30310002 0x00000000 0x0cf7c803 0x00000030 Addr 0x1f0005d0 0x00000000 0x06900000 0x00c006c0 0x00178160 Addr 0x1f0005e0 0x30310002 0x00000000 0x0cf7c804 0x00400030 Addr 0x1f0005f0 0x00000000 0x06900000 0x00c006c0 0x00178ca0 Addr 0x1f000600 0x30310002 0x00000000 0x0cf7c806 0x00400030 Addr 0x1f000610 0x00000000 0x06900000 0x00c006c0 0x001797e0 Addr 0x1f000620 0x30310042 0x00000000 0x0cf7c78d 0x00000030 Addr 0x1f000630 0x00000000 0x06900000 0x00c006c0 0x0017a320 Addr 0x1f000640 0x30310042 0x00000000 0x0cf7c78f 0x00180030 Addr 0x1f000650 0x00000000 0x06900000 0x00c006c0 0x0017ae60 Addr 0x1f000660 0x30310042 0x00000000 0x0cf7c790 0x00400030 Addr 0x1f000670 0x00000000 0x06900000 0x00c006c0 0x0017b9a0 Addr 0x1f000680 0x30310042 0x00000000 0x0cf7c791 0x00300030 Addr 0x1f000690 0x00000000 0x06900000 0x00c006c0 0x0017c4e0 Addr 0x1f0006a0 0x30310002 0x00000000 0x0cf7c80d 0x00380030 Addr 0x1f0006b0 0x00000000 0x06900000 0x00c006c0 0x0017d020 Addr 0x1f0006c0 0x30310002 0x00000000 0x0cf7c80e 0x00180030 Addr 0x1f0006d0 0x00000000 0x06900000 0x00c006c0 0x0017db60 Addr 0x1f0006e0 0x30310002 0x00000000 0x0cf7c810 0x00300030 Addr 0x1f0006f0 0x00000000 0x06900000 0x00c006c0 0x0017e6a0 Addr 0x1f000700 0x30310002 0x00000000 0x0cf7c811 0x00200030 Addr 0x1f000710 0x00000000 0x06900000 0x00c006c0 0x0017f1e0 Addr 0x1f000720 0x30310002 0x00000000 0x0cf7c799 0x00280030 Addr 0x1f000730 0x00000000 0x06900000 0x00c006c0 0x0017fd20 Addr 0x1f000740 0x30310002 0x00000000 0x0cf7c79a 0x00400030 Addr 0x1f000750 0x00000000 0x06900000 0x00c006c0 0x00180860 Addr 0x1f000760 0x30310002 0x00000000 0x0cf7c79c 0x00280030 Addr 0x1f000770 0x00000000 0x06900000 0x00c006c0 0x001813a0 Addr 0x1f000780 0x30310002 0x00000000 0x0cf7c79d 0x00400030 Addr 0x1f000790 0x00000000 0x06900000 0x00c006c0 0x00181ee0 Addr 0x1f0007a0 0x30310002 0x00000000 0x0cf7c79e 0x00200030 Addr 0x1f0007b0 0x00000000 0x06900000 0x00c006c0 0x00182a20 Addr 0x1f0007c0 0x30310002 0x00000000 0x0cf7c7a0 0x00300030 Addr 0x1f0007d0 0x00000000 0x06900000 0x00c006c0 0x00183560 Addr 0x1f0007e0 0x30310002 0x00000000 0x0cf7c7a1 0x00280030 Addr 0x1f0007f0 0x00000000 0x06900000 0x00c006c0 0x001840a0 Addr 0x1f000800 0x30310002 0x00000000 0x0cf7c7a3 0x00380030 Addr 0x1f000810 0x00000000 0x06900000 0x00c006c0 0x00184be0 Addr 0x1f000820 0x30310002 0x00000000 0x0cf7c7a4 0x00000030 Addr 0x1f000830 0x00000000 0x06900000 0x00c006c0 0x00185720 Addr 0x1f000840 0x30310002 0x00000000 0x0cf7c7a6 0x00580030 Addr 0x1f000850 0x00000000 0x06900000 0x00c006c0 0x00186260 Addr 0x1f000860 0x30310002 0x00000000 0x0cf7c7a7 0x00400030 Addr 0x1f000870 0x00000000 0x06900000 0x00c006c0 0x00186da0 Addr 0x1f000880 0x30310002 0x00000000 0x0cf7c7a8 0x00080030 Addr 0x1f000890 0x00000000 0x06900000 0x00c006c0 0x001878e0 Addr 0x1f0008a0 0x30310002 0x00000000 0x0cf7c7aa 0x00500030 Addr 0x1f0008b0 0x00000000 0x06900000 0x00c006c0 0x00188420 Addr 0x1f0008c0 0x30310002 0x00000000 0x0cf7c7ab 0x00500030 Addr 0x1f0008d0 0x00000000 0x06900000 0x00c006c0 0x00188f60 Addr 0x1f0008e0 0x30310002 0x00000000 0x0cf7c7ac 0x00580030 Addr 0x1f0008f0 0x00000000 0x06900000 0x00c006c0 0x00189aa0 Addr 0x1f000900 0x30310002 0x00000000 0x0cf7c7ae 0x00400030 Addr 0x1f000910 0x00000000 0x06900000 0x00c006c0 0x0018a5e0 Addr 0x1f000920 0x30310002 0x00000000 0x0cf7c7af 0x00380030 Addr 0x1f000930 0x00000000 0x06900000 0x00c006c0 0x0018b120 Addr 0x1f000940 0x30310002 0x00000000 0x12166e39 0x00380030 Addr 0x1f000950 0x00000000 0x06900000 0x00c006c0 0x0018bc60 Addr 0x1f000960 0x30310042 0x00000000 0x10fd68ec 0x00500030 Addr 0x1f000970 0x00000000 0x06900000 0x00c006c0 0x0018c7a0 Addr 0x1f000980 0x30310042 0x00000000 0x0a2fd6b1 0x00480030 Addr 0x1f000990 0x00000000 0x06900000 0x00c006c0 0x0018d2e0 Addr 0x1f0009a0 0x30310042 0x00000000 0x092e9edb 0x00580030 Addr 0x1f0009b0 0x00000000 0x06900000 0x00c006c0 0x0018de20 Addr 0x1f0009c0 0x30310002 0x00000000 0x0cf7c7b6 0x00000030 Addr 0x1f0009d0 0x00000000 0x06900000 0x00c006c0 0x0018e960 Addr 0x1f0009e0 0x30310002 0x00000000 0x0cf7c7b8 0x00100030 Addr 0x1f0009f0 0x00000000 0x06900000 0x00c006c0 0x0018f4a0 Addr 0x1f000a00 0x30310042 0x00000000 0x090670c0 0x00480030 Addr 0x1f000a10 0x00000000 0x06900000 0x00c006c0 0x0018ffe0 Addr 0x1f000a20 0x30310042 0x00000000 0x090670c1 0x00200030 Addr 0x1f000a30 0x00000000 0x06900000 0x00c006c0 0x00190b20 Addr 0x1f000a40 0x30310042 0x00000000 0x090670c3 0x00280030 Addr 0x1f000a50 0x00000000 0x06900000 0x00c006c0 0x00191660 Addr 0x1f000a60 0x30310042 0x00000000 0x08fd0b71 0x00380030 Addr 0x1f000a70 0x00000000 0x06900000 0x00c006c0 0x001921a0 Addr 0x1f000a80 0x30310042 0x00000000 0x08fd1fe5 0x00300030 Addr 0x1f000a90 0x00000000 0x06900000 0x00c006c0 0x00192ce0 Addr 0x1f000aa0 0x30310042 0x00000000 0x08f5bb37 0x00400030 Addr 0x1f000ab0 0x00000000 0x06900000 0x00c006c0 0x00193820 Addr 0x1f000ac0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000ad0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000ae0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000af0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000b00 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000b10 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000b20 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000b30 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000b40 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000b50 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000b60 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000b70 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000b80 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000b90 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000ba0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000bb0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000bc0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000bd0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000be0 0x00000000 0x00000000 0x00000000 0x00000000 Addr 0x1f000bf0 0x00000000 0x00000000 0x00000000 0x00000000

************************************************************** According to Cell Time Stamp (CTS) of RCT field in "Figure 31-25 Receive Connection Table (RCT) Entry" (See MPC8280RM, 3/2004, Rev. 0), last AAL5 channels stopped to received cells some time ago: recent CTS Addr 0x1f000780 0x30310002 0x00000000 0x0cf7c79d 0x00400030 Addr 0x1f000790 0x00000000 0x06900000 0x00c006c0 0x00181ee0

failure CTS Addr 0x1f000aa0 0x30310042 0x00000000 0x08f5bb37 0x00400030 Addr 0x1f000ab0 0x00000000 0x06900000 0x00c006c0 0x00193820 RBD_BASE

RDB_BASE = 0x03193820 Let's take a sniff on RxBDs of paralyzed AAL5 channels:

Addr 0x3193820 0x1c000001 0x02d96100 0x1c000001 0x02c0a900 Addr 0x3193830 0x1c000001 0x02bde100 0x1c000001 0x02da2100 Addr 0x3193840 0x1c000001 0x02e9c100 0x1c000001 0x02bc2100 Addr 0x3193850 0x1c000001 0x02bbf900 0x1c000001 0x02ad9100 Addr 0x3193860 0x1c000001 0x02b37100 0x1c000001 0x02e52100 Addr 0x3193870 0x1c000001 0x02d6b900 0x3c000001 0x02d73900

It seems like normal RxBDs. All of them with payload 1 as it should be. But the RxBD table is frozen.

********************************************************* Also during the traffic many Rx interrupt table overflow are reported. But the our software recovering from Rx overflow seems to be OK: (1) Read INTO1 of FCCE1 register (RX events go to the seconde queue (with index 1)). (2) If INTO1 is set, copy the entry pointed by INTQ_PTR to INTQ_ENTRY. (3) Acknowledge INTO1 bit. *********************************************************

Additional input for the problem. When low ATM traffic is used, the problem does not exists. When there are AAL5 channels only, problem does not exists. When there are AAL0 channels only, problem does not exists.

*********************************************************

Could it be CMP123 from MPC8280CE, Rev. 3, 12/2006 ?

*********************************************************

Thank you in advance. Regards, Konstantin.

P.S. See gmail published (by me) document:

formatting link

Reply to
zertsekel
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.