Here's another alignment issue.
I have configured two machines as follows.
ifconfig vether0 inet ...
ifconfig etherip0 tunnel ... ...
ifconfig bridge0 add vether0 add etherip0
An amd64 machine works fine in this configuration, however armv7 and
sparc64 both have trouble. This happens very quickly after setting up
the interfaces and attempting to ping. The armv7 is running -current and
the sparc64 is running 6.0.
Some quick research points at the M_PREPEND calls in ip_etherip_output,
since etherip headers are only two bytes.
I can reproduce and get more information if necessary.
Thanks,
Martin
Here's armv7
Fatal kernel mode data abort: 'Alignment fault'
trapframe: 0xcc3c2c90
DFSR=00000801, DFAR=ca1829e6, spsr=20000113
r0 =ca182900, r1 =000008c4, r2 =0300000a, r3 =00007800
r4 =ca1829da, r5 =c56d92e8, r6 =c56d9000, r7 =c56d93e8
r8 =00000000, r9 =ca182900, r10=00000002, r11=cc3c2d24
r12=c06987d8, ssp=cc3c2ce0, slr=c0524ae8, pc =c040a13c
Stopped at ip_etherip_output+0x158: str r2, [r4, #0x00c]
ddb> trace
ip_etherip_output+0x10
scp=0xc0409ff4 rlv=0xc040a688 (etherip_start+0xe8)
rsp=0xcc3c2d28 rfp=0xcc3c2d4c
r10=0xc5726800 r9=0xc56f8000 r8=0xc56f8000 r7=0xc56d9198
r6=0xc56d9000 r5=0xc56d9000 r4=0xca182900
etherip_start+0xc
scp=0xc040a5ac rlv=0xc0403aac (if_start_locked+0x34)
rsp=0xcc3c2d50 rfp=0xcc3c2d74
r7=0x00000000 r6=0xc069a840 r5=0x00000003 r4=0xc56d9000
if_start_locked+0xc
scp=0xc0403a84 rlv=0xc0407b14 (if_enqueue+0x88)
rsp=0xcc3c2d78 rfp=0xcc3c2d9c
r6=0x00000062 r5=0x00000012 r4=0xc56d9000
if_enqueue+0xc
scp=0xc0407a98 rlv=0xc041a138 (bridge_ifenqueue+0x30)
rsp=0xcc3c2da0 rfp=0xcc3c2dcc
r7=0x00000000 r6=0x00000062 r5=0x00000000 r4=0xc5727900
bridge_ifenqueue+0xc
scp=0xc041a114 rlv=0xc041a6fc (bridge_output+0x278)
rsp=0xcc3c2dd0 rfp=0xcc3c2e0c
r8=0xca182900 r7=0x00000000 r6=0xc56d9000 r5=0x00000000
r4=0xc5727900
bridge_output+0xc
scp=0xc041a490 rlv=0xc0409768 ($a+0xb0)
rsp=0xcc3c2e10 rfp=0xcc3c2e54
r10=0xcc3c2e1e r9=0xc5726aa0 r8=0xca182f00 r7=0xc5726800
r6=0x00000008 r5=0xca182900 r4=0xca1829f0
ether_output+0xc
scp=0xc04095a8 rlv=0xc04510a4 (arpcache+0x130)
rsp=0xcc3c2e58 rfp=0xcc3c2eac
r10=0xc5726800 r9=0xca182c50 r8=0xca3ed08c r7=0xca0497f8
r6=0xca3ed09c r5=0xc07044b0 r4=0x00000001
arpcache+0xc
scp=0xc0450f80 rlv=0xc0451578 (in_arpinput+0x280)
rsp=0xcc3c2eb0 rfp=0xcc3c2f14
r10=0x00000000 r9=0xca182c50 r8=0x00000001 r7=0xc5726800
r6=0xca182c00 r5=0xca0497f8 r4=0xca182c48
in_arpinput+0xc
scp=0xc0451304 rlv=0xc0451660 (arpintr+0x28)
rsp=0xcc3c2f18 rfp=0xcc3c2f44
r10=0xc069a840 r9=0x00000000 r8=0x00000000 r7=0xc0703a98
r6=0xcc3c2f18 r5=0xc5726800 r4=0xca182c00
arpintr+0x10
scp=0xc0451648 rlv=0xc0406e2c (if_netisr+0xc8)
rsp=0xcc3c2f48 rfp=0xcc3c2f74
r6=0x00000000 r5=0xc0703a98 r4=0x00040000
if_netisr+0x10
scp=0xc0406d74 rlv=0xc03b85cc (taskq_thread+0x78)
rsp=0xcc3c2f78 rfp=0xcc3c2fac
r10=0xc06fbc98 r8=0xc06fbe78 r7=0xcc3c2f78 r6=0x00000001
r5=0xc54c0040 r4=0xc03b4434
taskq_thread+0xc
scp=0xc03b8560 rlv=0xc052b088 (proc_trampoline+0x18)
rsp=0xcc3c2fb0 rfp=0xc0815ec4
r7=0x00000000 r6=0x00000000 r5=0xc54c0040 r4=0xc03b8554
Bad frame pointer: 0xc0815ec4
ddb>
and here's sparc64
panic: trap type 0x34 (mem address not aligned): pc=11ffa0c npc=11ffa
10 pstate=820006<PRIV,IE>
Stopped at Debugger+0x8: nop
TID PID UID PRFLAGS PFLAGS CPU COMMAND
*45795 45795 0 0x14000 0x210 1 softnet
trap(4007849d370, 34, 11ffa0c, 820006, 4007849db10, 0) at trap+0x360
Lslowtrap_reenter(40014464400, 14, 2, 0, 88d8, 6) at Lslowtrap_reenter+0xf8
ip_etherip_output(4000a85c800, 40014464400, 62, 4007849dc08, 4007849db10, 0) at
ip_etherip_output+0xd4
etherip_start(4000a85c800, 62, 0, 0, 88d8, 6) at etherip_start+0xc4
if_start_locked(4000a85c800, 40014464400, 62, 4007849dc08, 4007849db10, 0) at
if_start_locked+0x24
if_enqueue(0, 62, 0, 0, 88d8, 6) at if_enqueue+0x6c
bridge_ifenqueue(4000ae12000, 4000a85c800, 62, 4007849dc08, 4007849db10, 0) at
bridge_ifenqueue+0x30
bridge_output(0, 40014464400, 0, 0, 88d8, 6) at bridge_output+0x260
if_enqueue(4000a85d800, 40014464400, 40014464400, 4007849dc08, 4007849db10, 0)
at if_enqueue+0x90
ether_output(37, 40014464b00, 4007849dc08, 40014b04e70, 88d8, ffff) at
ether_output+0x214
ip_output(40014464b00, 40014464b68, 4007849dbf8, 0, 0, 0) at ip_output+0x7a0
ip_send_dispatch(0, 4007849dde0, 119bfe0, 0, 40000, 20000000) at
ip_send_dispatch+0x64
taskq_thread(40008b18080, 40014bded80, 168fe98, 168fc10, 0, 3b9ac800) at
taskq_thread+0x6c
proc_trampoline(0, 0, 0, 0, 0, 0) at proc_trampoline+0x14