EP0702500A2

Method of multicasting and multicast system

Abstract

A linked list for multicast in an ATM network. The linked list comprises a first cell. The linked list also comprises a plurality of read pointers. Each read pointer is associated with a port. Each read pointer points to the first cell. A multicast system for an ATM network. The system comprises a first port through which a cell passes. The system also comprises a first read pointer associated with the first port. The multicast system additionally comprises at least a second port through which the cell passes. There is at least a second read pointer associated with the second port. The multicast system is comprised of a cell to which each read pointer points. Furthermore, the multicast system is comprised of a controller for controlling when a read pointer reads a cell. The system preferably includes a plurality of cells. Each cell has a cell pointer pointing to a next cell. The plurality of cells forms a linked list. The controller points a read pointer to the next cell after the cell the read pointer was pointing to is read. A method for multicasting. The method comprises the steps of forming a first read pointer and at least a second read pointer. Each read pointer corresponds to a first port and a second port, respectively. Each read pointer points to a cell. Then there is the step of choosing a port. Next there is the step of locating the read pointer for the port. Then there is the step of reading the cell to which the read pointer is pointing. Preferably, the cell includes data and the cell includes a cell pointer pointing to a second cell, if there is a second cell. The first cell and at least the second cell forms a linked list.

EP0702500A2, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Projected expiry passed 8 September 2015, 11 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

27 claims: 27 independent, 0 dependent

  1. 1
    A method for multicasting characterized by the steps of:forming a first read pointer 16a and at least a second read pointer 16b, each read pointer 16 corresponding to a first port 18a and a second port 18b, respectively, each read pointer 16 pointing to a first cell 14a;choosing the first port 18a;locating the first read pointer 16a for the first port 18a;reading the first cell 14a to which the first read pointer 16a is pointing;choosing the second port 18b;locating the second read pointer 16b for the second port 18b;pointing the second read pointer 16b to the first cell 14a;reading the first cell 14a to which the second read pointer 16b is pointing;and    pointing a cell pointer 20 of the first cell 14a to a second cell 14b which is to be transmitted out of the first port 18a and the second port 18b, said second cell 14b the only cell 14b to which the first cell 14a is pointing, said first cell 14a and at least the second cell 14b forming a linked list 10.
  2. 2
    A method as described in Claim 1 characterized by the fact that the cell 14 includes data.
  3. 3
    A method as described in Claim 2 characterized by the fact that after the reading step, there is the step of pointing the read pointer 16 to the second cell 14b pointed to by the cell pointer 20 of the first cell 14a.
  4. 4
    A method as described in Claim 3 characterized by the fact that after the reading step, there is the step of sending the first cell 14a out of the port 18.
  5. 5
    A method as described in Claim 4 characterized by the fact that after the pointing step, there is the step of checking whether there is at least one other port 18 through which the first cell 14a will be sent out.
  6. 6
    A method as described in Claim 5 characterized by the fact that after the checking step, there is the step of freeing the cell 14 if there is no other port 18 the first cell 14a will be sent out.
  7. 7
    A method as described in Claim 6 characterized by the fact that the cell 14 includes a count 24 which identifies all ports 18 the first cell 14a will be sent out, and after the sending step, there is the step of removing from the count 24, the port 18;and wherein the freeing step includes the step of freeing the first cell 14a if there is no other port 18 the first cell 14a will be sent out and there are no other ports 18 in the count 24 and the cell 14 is not the last cell 14c in the linked list 10.
  8. 8
    A method as described in Claim 7 characterized by the fact that after the pointing step, the step of reading the second cell 14b to which the pointer 16a is pointing.
  9. 9
    A method as described in Claim 8 characterized by the fact that the removing step includes the step of decrementing by 1 a value of the count 24 equal to the number of ports 18 the first cell 14a will be sent out.
  10. 10
    A method as described in Claim 9 characterized by the fact that the checking step includes the step of comparing a stop pointer 26 value for the port 18 with a write pointer 22 value for the port 18, said write pointer 22 pointing to a last cell 14c to be sent out the port 18;and wherein the freeing step includes the step of freeing the last cell 14c if the stop pointer 26 value equals the write pointer 22 value and no other port 18 is to read the last cell 14c.
  11. 11
    A method as described in Claim 9 characterized by the fact that after the pointing step, there is the step of clearing a bit 32 corresponding to the port 18 from a status field 34 of the first cell 14a;and wherein the freeing step includes the step of freeing the first cell 14a if the status field 34 is empty and the value of the count 24 is equal to 0 and the first cell 14a is not the last cell 14c in the linked list 10.
  12. 12
    A method for multicasting characterized by the steps of:choosing a port 18;locating a read pointer 16 for the port 18;reading a cell 14 to which the read pointer 16 is pointing;sending the cell 14 out the port 18;removing from a count 24 which identifies all ports 18 the cell 14 will be sent out, the port 18;choosing a second port 18b;locating a second read pointer 16b for the second port 18b;sending the first cell 14 out the port 18;pointing the read pointer 16 to a second cell 14b pointed to by a cell pointer 20 of the cell 14, said second cell 14b the only cell to which the first cell 14a is pointing;checking whether there is at least one other port 18 the first cell 14a will be sent out;and    freeing the first cell 14a if there is no other port 18 the cell 14 will be sent out and there are no other ports 18 in the count 24.
  13. 13
    A method as described in Claim 12 characterized by the fact that there is after the pointing step, the step of reading the second cell 14b to which the read pointer 16 is pointing.
  14. 14
    A method as described in Claim 13 characterized by the fact that the removing step includes the step of decrementing by 1 a value of the count 24 equal to the number of ports 18 the cell 14 will be sent out.
  15. 15
    A method as described in Claim 14 characterized by the fact that the checking step includes the step of comparing a stop pointer 26 value for the port 18 with a write pointer 22 value for the port 18, said write pointer 22 pointing to a last cell 14c to be sent out the port 18;and wherein the freeing step includes the step of freeing the cell 14 if the step pointer value equals the write pointer 22 value, and the value of the count 24 is 0 and the cell 14 is not to last cell 14c in the linked list 10.
  16. 16
    A method as described in Claim 14 characterized by the fact that after the pointing step, there is the step of clearing a bit 32 corresponding to the port 18 from a status field 34 of the cell 14;and wherein the freeing step includes the step of freeing the cell 14 if the status field 34 is empty and the value of the count 24 is equal to 0.
  17. 17
    A multicast system 28 for an ATM network characterized by:a first port 18a through which a cell 14a and at least a second cell 14b passes;a first read pointer 16a associated with the first port 18a;at least a second port 18b through which the cell 14a passes;at least a second read pointer 16b associated with the second port 18b;a cell 14a to which each read pointer 16 points, said cell 14 having a cell pointer 20, which points to a second cell;a second cell 14b to which each read pointer points, said second cell 14b the only cell to which the first cell 14a points;and    a controller 38 for controlling when a read pointer 16 reads a cell 14.
  18. 18
    A system 28 as described in Claim 17 characterized by the fact that there is a plurality of cells 14, each cell 14 having a cell pointer 20 pointing to a next cell 14, the plurality of cells 14 forming a linked list 10, said controller 38 pointing a read pointer 16 to the next cell 14 after the cell 14 the read pointer 16 was pointing to is read.
  19. 19
    A system 28 as described in Claim 18 characterized by the fact that there is means or mechanism for pointing to a last cell 14c in the linked list 10.
  20. 20
    A system 28 as described in Claim 19 characterized by the fact that each cell 14 has a count 24 which identifies all ports 18 the cell 14 will be sent out, said controller 38 removing a port 18 from the count 24 after the cell 14 the read pointer 16 is pointing to is read.
  21. 21
    A system 28 as described in Claim 19 characterized by the fact that there is a stop pointer 26 corresponding with each read pointer 16, said stop pointer 26 identifying the last cell 14c that will be sent out the port 18, said controller 38 freeing the cell 14 if there is no other port 18 the cell 14 will be sent out and no ports 18 in the count 24 unless it is the last cell 14c in the linked list 10.
  22. 22
    A linked list 10 for multicast in an ATM network comprising:a memory 44;a first cell 14a having a cell pointer, said first cell stored in the memory 44;a second cell stored in the memory 44, said second cell the only cell to which the first cell is pointing;and    a plurality of read pointers 16, each read pointer 16 associated with a port 18, each read pointer 16 pointing to the first cell 14a, each cell to be transmitted out a plurality of ports 18.
  23. 23
    A list 10 as described in Claim 22 characterized by the fact that the cell 14 includes data.
  24. 24
    A list 10 as described in Claim 23 including a write pointer 22 pointing to the last cell 14c.
  25. 25
    A list 10 as described in Claim 24 characterized by the fact that each cell 14 has a count 24 which identifies all ports 18 the cell 14 will be sent out.
  26. 26
    A list 10 as described in Claim 25 characterized by the fact that there is a stop pointer 26 corresponding with each read pointer 16, said stop pointer 26 identifying the last cell 14c that will be sent out the port 18.
  27. 27
    A method for multicasting comprising the steps of:pointing a first read pointer corresponding to a first port at a cell of a linked list of cells which is a first cell of the linked list of cells to be transmitted out the first port with the only cell each cell points to being a subsequent cell of the linked list;pointing a second read pointer corresponding to a second port at a cell of the linked list of cells which is the first cell of the linked list of cells to be transmitted out the second port;adding a new cell to the linked list of cells by pointing to the new cell from only a pointer from one cell in the linked list to the new cell, each cell having only one pointer pointing to another cell;transmitting the cell at which the first read pointer is pointing out the first port;and    transmitting the cell at which the second read pointer is pointing out the second port.
Independent claims27