13.01.2015 Views

Digital Subscriber Line Access Multiplexer (DSLAM) Example Design

Digital Subscriber Line Access Multiplexer (DSLAM) Example Design

Digital Subscriber Line Access Multiplexer (DSLAM) Example Design

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Digital</strong> <strong>Subscriber</strong> <strong>Line</strong> <strong>Access</strong> <strong>Multiplexer</strong> (<strong>DSLAM</strong>) <strong>Example</strong> <strong>Design</strong><br />

• Network model (IP Longest Prefix Match (LPM) or IP 5-Tuple<br />

• Buffer index which indicates where to store incoming packet segments<br />

The routing table is used to determine the IP destination of incoming packets and to what format<br />

they should be converted. This table is accessed by one of two methods as determined from the<br />

network model in the connection table:<br />

• IP Longest Prefix Match (LPM)<br />

• IP 5-Tuple<br />

Each entry in the routing table contains the following:<br />

• Destination IP Address<br />

• Netmask<br />

• Gateway<br />

• Physical Outport Port Number<br />

• VP<br />

• VC<br />

• LLC/SNAP Header<br />

Table 1. L3 Routing Table - IP Route <strong>Example</strong><br />

4.3.1 Rate Manager<br />

The Rate Manager creates both the VC and Port table. It allows easy customization of the entries<br />

and is called from the initialization script TM41.ind.<br />

4.3.1.1 Port Table Entry<br />

//////////////////////////////////////////////////////////////////////////////<br />

// Port table entry<br />

struct Unshaped_VC_{<br />

UINT unshaped_unused_0: 8;// For alignment<br />

UINT WRR_count: 8; // WRR weight associated with unshaped 0-15 VC (cells)<br />

UINT vc_index: 16;//Base address of queue associated with an unshaped 0-15<br />

VC<br />

};<br />

typedef struct Unshaped_VC_ Unshaped_VC;<br />

// 32 lw per entry * 256 ports * 4 = 32Kbytes<br />

struct Port_Entry_{<br />

// LongWord - 0<br />

UINT entry_valid: 1;// Message queue base address<br />

UINT port_unused_0: 9;// For alignment<br />

UINT current_unshaped_queue: 5;// Queue # being processed (0-15)<br />

UINT q_with_pkts_vector: 17;// Indicator for 16 VC queues and 1<br />

First_Chance_Q<br />

// LongWord - 1<br />

30 Application Note

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!