Project

General

Profile

Juniper ACX2100 » History » Version 5

laforge, 11/28/2021 08:21 PM
add notes on how to approach DAHDI support for SAToP-over-MPLS

1 2 laforge
{{>toc}}
2
3 1 laforge
h1. Juniper ACX2100
4
5
This is an Access Router that can carry up to 16x E1/T1 lines over SAToP/MPLS/Ethernet
6
7 2 laforge
h2. Pseudowire formats
8
9
The ACX2100 supports the following formats:
10
# SAToP (structure agnostic TDM over packet)
11
# Cisco-HDLC compatible framing
12
# PPP
13
# Inverse ATM Multiplex (used in classic 3G NodeB with Iub over ATM)
14
15 5 laforge
h3. SAToP over MPLS
16 2 laforge
17
In this format, the pseudowire format consists of 256 bytes unaligned E1 bitstream sent every 1ms.
18
19
Layer stacking is:
20
* 14-byte Ethernet II, ethtype MPLS (0x8847)
21
* 4-byte MPLS header containing the label
22
* 4-byte Pseudowire Ethernet Control Word containing sequence number
23 3 laforge
* 256-byte E1 payload
24 2 laforge
25 1 laforge
See attachment:juniper-acx2100-satop-static-mpls.pcap
26 5 laforge
27
h4. Interfacing this from Linux
28
29
In case anyone wants to interface with this from FOSS, it should be relatively easy to adapt DAHDI for it, by using @dahdi-linux/drivers/dahdi/dahdi_dynamic_eth.c@ as a reference.  This driver, too, implements E1 payload over Ethernet frames.
30 2 laforge
31
h2. Configuration related to E1/T1 pseudowires
32
33
The ACX2100 supports so-called _pseudowires_ which is the option of encapsulating/transporting E1/T1 circuits via Ethernet.  Contrary to other equipment, the ACX seems to be constrained to transport over MPLS only.
34
35
h3. Normal usage with OSPF, LDP and RSVP
36
37
First, the ACX establishes dynamic routing to its peers via OSPF. You can interface this to a Linux machine running FRR ospfd.
38
39
Second, the ACX establishes LDP.  You can interface this to a Linux machine running FRR ldpd.
40
41
Third, the ACX uses RSVP to configure the lables used for the individual pseudowires. There is currently no known Linux implementation that understands the specific RSVP use case for E1 pseudowires.
42
43
h4. Configuration on ACX side
44
45
<pre>
46
chassis {
47
    fpc 0 {
48
        pic 0 {
49
            framing e1;
50
        }
51
    }
52
}
53
interfaces {
54
    ce1-0/0/0 {
55
        no-partition interface-type e1;
56
    }
57
    e1-0/0/0 {
58
        encapsulation satop;
59
        unit 0;
60
    }
61
    ge-1/0/0 {
62
        unit 0 {
63
            family inet {
64
                address 20.1.1.2/24;
65
            }
66
            family mpls;
67
        }
68
    }
69
}
70
protocols {
71
    rsvp {
72
        traceoptions {
73
            file rsvp-log;
74
            flag all;
75
        }
76
        interface ge-1/0/0.0;
77
    }
78
    mpls {
79
        no-cspf;
80
        label-switched-path PE1-to-PE2 {
81
            to 20.1.1.222;
82
        }
83
        interface ge-1/0/0.0;
84
    }
85
    ospf {
86
        area 0.0.0.0 {
87
            interface ge-1/0/0.0;
88
        }
89
    }
90
    ldp {
91
        traceoptions {
92
            file ldp-log;
93
            flag all;
94
        }
95
        interface ge-1/0/0.0;
96
    }                                   
97
    l2circuit {
98
        neighbor 20.1.1.222 {
99
            interface e1-0/0/0.0 {
100
                virtual-circuit-id 1;
101
            }
102
        }
103
    }
104
}
105
</pre>
106
107
h3. static pseudowires
108
109
Much less documented/publicized, one can also simply crate a "static" label configuration for a  given l2circuit:
110
111
Example:
112
113
<pre>
114
protocols { 
115
    l2circuit {
116
        neighbor 20.1.1.222 {
117
            interface e1-0/0/0.0 {
118
                static {
119
                    incoming-label 1000023;
120
                    outgoing-label 23;
121
                    send-oam;
122
                }
123
                virtual-circuit-id 1;
124
            }
125
        }
126
    }
127
}
128
</pre>
129
130
In this configuration the E1 interface 0/0/0 is associated with the incoming label 1000023 and outgoing label 23.  You can send and receive the pseudowire payload using the above-mentioned mpls labels. The Ethernet destination address is the one associated with the neighboring router 20.1.1.122.
131 1 laforge
132
h2. boot log
133
134
<pre>
135
ELF file is 32 bit
136
Loading .text @ 0x00010060 (194856 bytes)
137
Loading .rodata @ 0x0003f988 (13601 bytes)
138
Loading .rodata.str1.4 @ 0x00042eac (16496 bytes)
139
Loading set_Xcommand_set @ 0x00046f1c (92 bytes)
140
Loading .rodata.cst4 @ 0x00046f78 (36 bytes)
141
Loading .data @ 0x00047000 (13544 bytes)
142
Loading .data.rel.ro @ 0x0004a4e8 (120 bytes)
143
Loading .data.rel @ 0x0004a560 (320 bytes)
144
Loading .data.rel.ro.local @ 0x0004a6a0 (288 bytes)
145
Loading .data.rel.local @ 0x0004a7c0 (68 bytes)
146
Loading .got2 @ 0x0004a804 (4172 bytes)
147
Loading .fixup @ 0x0004b850 (584 bytes)
148
Loading .sdata @ 0x0004ba98 (80 bytes)
149
Clearing .sbss @ 0x0004bae8 (128 bytes)
150
Clearing .bss @ 0x0004bb68 (9440 bytes)
151
## Starting application at 0x00010060 ...
152
Consoles: U-Boot console  
153
Will try to boot from
154
nand-flash0
155
156
FreeBSD/PowerPC U-Boot bootstrap loader, Revision 2.4
157
(venky@bng-junos-pool62.juniper.net, Tue Dec  3 12:09:59 IST 2013)
158
Memory: 1536MB
159
Trying to boot from nand-flash0
160
Loading /boot/defaults/loader.conf 
161
/kernel data=0x9c9e24+0xa9f6c syms=[0x4+0x89470+0x4+0xc865f]
162
163
164
Hit [Enter] to boot immediately, or space bar for command prompt.
165
Booting [/kernel]...               
166
Kernel entry at 0xa00000c0 ...
167
GDB: debug ports: uart
168
GDB: current port: uart
169
KDB: debugger backends: ddb gdb
170
KDB: current backend: ddb
171
platform_early_bootinit: MX-PPC Series Early Boot Initialization
172
mxppc_set_re_type: hw.board.type is ACX-2100
173
WDOG initialized
174
Copyright (c) 1996-2014, Juniper Networks, Inc.
175
All rights reserved.
176
Copyright (c) 1992-2006 The FreeBSD Project.
177
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
178
        The Regents of the University of California. All rights reserved.
179
JUNOS 12.3X54-D15.3 #0: 2014-11-29 23:21:25 UTC
180
    builder@faranth.juniper.net:/volume/build/junos/12.3/service/12.3X54-D15.3/obj-powerpc/junos/bsd/kernels/JUNIPER-PPC/kernel
181
WARNING: debug.mpsafenet forced to 0 as ipsec requires Giant
182
Timecounter "decrementer" frequency 62500000 Hz quality 0
183
cpu0: Freescale e500v2 core revision 5.1
184
cpu0: HID0 80004000<EMCP,TBEN>
185
real memory  = 1585446912 (1512 MB)
186
avail memory = 1553989632 (1482 MB)
187
Security policy loaded: JUNOS MAC/runasnonroot (mac_runasnonroot)
188
Security policy loaded: Junos MAC/veriexec (mac_veriexec)
189
Security policy loaded: JUNOS MAC/pcap (mac_pcap)
190
MAC/veriexec fingerprint module loaded: SHA1
191
MAC/veriexec fingerprint module loaded: SHA256
192
ETHERNET SOCKET BRIDGE initialising
193
Initializing M/T platform properties ..
194
nexus0: <PPC e500 Nexus device>
195
ocpbus0: <on-chip peripheral bus> on nexus0
196
openpic0: <OpenPIC in on-chip peripheral bus> iomem 0xf7f40000-0xf7f600b3 on ocpbus0
197
uart0: <16550 or compatible> iomem 0xf7f04500-0xf7f0450f irq 58 on ocpbus0
198
uart0: console (9600,n,8,1)
199
uart1: <16550 or compatible> iomem 0xf7f04600-0xf7f0460f irq 58 on ocpbus0
200
lbc0: <Freescale 8533 Local Bus Controller> iomem 0xf7f05000-0xf7f05fff,0xf8000000-0xffffffff irq 17,16 on ocpbus0
201
cfi0: <AMD/Fujitsu - 8MB> iomem 0xffc00000-0xffffffff on lbc0
202
fsyspld0 iomem 0xfef00000-0xfef00fff on lbc0
203
ramdev0 iomem 0xfee1f000-0xfee1ffff on lbc0
204
i2c0: <MPC85XX OnChip i2c Controller> iomem 0xf7f03000-0xf7f03014 irq 59 on ocpbus0
205
8564 rtc0: <8564 RTC> on i2c0
206
USB2513i usb hub0: <USB2513Bi usb hub> on i2c0
207
tsec0: <eTSEC ethernet controller> iomem 0xf7f24000-0xf7f24fff irq 45,46,50 on ocpbus0
208
tsec0: hardware MAC address 40:a6:77:13:89:7f
209
miibus0: <MII bus> on tsec0
210
brgphy0: <BCM54610 10/100/1000baseTX PHY> on miibus0
211
brgphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
212
tsec1: <eTSEC ethernet controller> iomem 0xf7f25000-0xf7f25fff irq 51,52,56 on ocpbus0
213
tsec1: hardware MAC address 02:00:00:00:00:04
214
miibus1: <MII bus> on tsec1
215
gentbi0: <Generic ten-bit interface> on miibus1
216
gentbi0:  1000baseSX-FDX, 1000baseT-FDX, auto
217
ehci0: <Frescale Integrated USB 2.0 controller> iomem 0xf7f22000-0xf7f22503 irq 44 on ocpbus0
218
usb0: EHCI version 1.0
219
usb0 on ehci0
220
usb0: USB revision 2.0
221
uhub0: Freescale EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
222
uhub0: 1 port with 1 removable, self powered
223
uhub1: SMSC USB2513Bi, class 9/0, rev 2.00/b.a0, addr 2
224
uhub1: multiple transaction translators
225
uhub1: 3 ports with 3 removable, self powered
226
umass0: vendor 0x13fe USB DISK 2.0, rev 2.00/1.00, addr 3
227
umass0: SCSI over Bulk-Only; quirks = 0x0000
228
umass0:0:0:-1: Attached to scbus0
229
Initializing product: 140 ..
230
Setting up M/T interface operations and attributes
231
platform_cookie_read not implemented
232
###PCB Group initialized for udppcbgroup
233
###PCB Group initialized for tcppcbgroup
234
da0 at umass-sim0 bus 0 target 0 lun 0
235
da0: < USB DISK 2.0 PMAP> Removable Direct Access SCSI-0 device 
236
da0: 40.000MB/s transfers
237
da0: 7640MB (15646720 512 byte sectors: 255H 63S/T 973C)
238
Kernel thread "wkupdaemon" (pid 45) exited prematurely.
239
Trying to mount root from ufs:/dev/da0s2a
240
Invalid time in real time clock.
241
Check and reset the date immediately!
242
Process-1 beginning MFSROOT initialization...
243
Creating MFSROOT...
244
/dev/md0: 25.0MB (51196 sectors) block size 16384, fragment size 2048
245
        using 4 cylinder groups of 6.25MB, 400 blks, 896 inodes.
246
super-block backups (for fsck -b #) at:
247
 32, 12832, 25632, 38432
248
Populating MFSROOT...
249
Setting up mounts...
250
Changing Root to MFSROOT...
251
Continuing boot from MFSROOT...
252
Attaching /packages/jbase via /dev/mdctl...
253
Mounted jbase package on /dev/md1...
254
J
255
Verified manifest signed by PackageProduction_12_3_0
256
Verified jboot signed by PackageProduction_12_3_0
257
Verified jbase-ppc-12.3X54-D15.3 signed by PackageProduction_12_3_0
258
Setting up ACX specific options
259
Mounted jkernel package on /dev/md2...
260
Verified manifest signed by PackageProduction_12_3_0
261
Verified jkernel-ppc-12.3X54-D15.3 signed by PackageProduction_12_3_0
262
Mounted jpfe package on /dev/md3...
263
Mounted jdocs package on /dev/md4...
264
Verified manifest signed by PackageProduction_12_3_0
265
Verified jdocs-12.3X54-D15.3 signed by PackageProduction_12_3_0
266
Mounted jroute package on /dev/md5...
267
Verified manifest signed by PackageProduction_12_3_0
268
Verified jroute-ppc-12.3X54-D15.3 signed by PackageProduction_12_3_0
269
Mounted jcrypto package on /dev/md6...
270
Verified manifest signed by PackageProduction_12_3_0
271
Verified jcrypto-ppc-12.3X54-D15.3 signed by PackageProduction_12_3_0
272
swapon: adding /dev/da0s4WARNING: /var was not properly dismounted
273
b as swap device
274
Checking file systems status for recovery action...
275
/var and /var/log bsdlabel found
276
Checking sanity of /var [ /dev/da0s3f ] ... done (full)
277
Checking sanity of /var/log [ /dev/da0s3d ] ... done (full)
278
Checking sanity of /config [ /dev/da0s2e ] ... done (full)
279
** /dev/da0s1a
280
FILE SYSTEM CLEAN; SKIPPING CHECKS
281
clean, 368832 free (40 frags, 46099 blocks, 0.0% fragmentation)
282
** /dev/da0s1e
283
FILE SYSTEM CLEAN; SKIPPING CHECKS
284
clean, 47221 free (21 frags, 5900 blocks, 0.0% fragmentation)
285
kern.init_chroot_path:  -> /mfsmnt
286
Automatic reboot in progress...
287
Executing tunefs on /...
288
Enable softupdates for /...
289
tunefs: soft updates cannot be enabled until fsck is run
290
tunefs: /dev/md0: failed to write superblock
291
Enable softupdates for config...
292
tunefs: soft updates remains unchanged as enabled
293
Will be using platform specific rc.mount-var to mount var
294
*** No fsck will be done by us...
295
Enable softupdates for var...
296
tunefs: soft updates remains unchanged as enabled
297
tunefs: soft updates remains unchanged as enabled
298
Mounting var...
299
Mounting var/log...
300
Creating initial configuration...mgd: warning: could not open /config/juniper.conf.md5: No such file or directory
301
Setting up ACX specific options
302
mgd: commit complete
303
Setting initial options:  debugger_on_panic=NO debugger_on_break=NO.
304
Starting optional daemons: .
305
Doing initial network setup:
306
.
307
Initial interface configuration:
308
additional daemons:.
309
checking for core dump...
310
savecore: Reboot reason(s): 0x1: power cycle/failure 
311
No dump exists
312
Setting up ACX specific options
313
Additional routing options:kern.module_path: /boot//kernel;/boot/modules -> /modules/peertype;/modules/ifpfLoading the IMA Link Media Layer; Attaching to media services layer
314
Loading the IMA Group Media Layer; Attaching to media services layer
315
e_drv;/modules/ifpfe_media;/modules/platform;/moLoading the SONET Media Layer; Attaching to media services layer
316
dules;
317
kld netpfe media: ifpfem_ds0 ifpfem_ds1e1 ifpfem_ds3e3 iLoading the CHMIC module
318
fpfem_ima ifpfem_otn ifpfem_sonetkld netpfe drv: ifpfed_atm ifpfed_chmic ifpfed_controller ifpfed_ds0 ifpfed_ds1e1 ifpfed_ds3e3 ifpfed_eth ifpfed_irb ifpfed_lt ifpfed_ml_cmn ifpfed_ml_ha ifpfed_posLoading POS driver
319
 ifpfed_pppoe ifpfed_sa Loading Aggregate sonet driver
320
 ifpfed_svcs ifpfed_vtkld platform: mt_ifpfeLoading Multilink Services PICs module.
321
Loading the M&T Platform NETPFE module
322
kld peertype: peertype_xdpc ipsec kld.
323
Doing additional network setup:.
324
Starting final network daemons:.
325
Run ACX dual root init to setup sysctls and other stuff...
326
Boot media /dev/da0 has dual root support
327
WARNING: JUNOS versions running on dual partitions are not same
328
** /dev/da0s1a
329
FILE SYSTEM CLEAN; SKIPPING CHECKS
330
clean, 368832 free (40 frags, 46099 blocks, 0.0% fragmentation)
331
setting ldconfig path: /usr/lib /opt/lib
332
starting standard daemons: cron.
333
Initial rc.powerpc initialization:.
334
335
 Lock Manager
336
RDM Embedded 7 [04-Aug-2006] http://www.birdstep.com
337
Copyright (c) 1992-2006 Birdstep Technology, Inc.  All Rights Reserved.
338
339
Unix Domain sockets Lock manager
340
Lock manager 'lockmgr' started successfully.
341
342
Database Initialization Utility
343
RDM Embedded 7 [04-Aug-2006] http://www.birdstep.com
344
Copyright (c) 1992-2006 Birdstep Technology, Inc.  All Rights Reserved.
345
346
/var/pdb/profile_db initialized
347
348
Profile database initialized
349
Local package initialization:.
350
kern.securelevel: -1 -> 1
351
starting local daemons:.
352
Fri Jan  1 00:04:38 UTC 2010
353
platform_cookie_read not implemented
354
355
Amnesiac (ttyu0)
356
357
login: 
358
</pre>
Add picture from clipboard (Maximum size: 48.8 MB)