This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OSPF6D thinks interfaces are down using 3.12 of kernel

I have a board with an Sitara chip that I have been working with setting up IPV6 routing on. I originally started with TI's SDK6 which uses version 3.2 of the Linux kernel. I enabled these options in the .config file:

The IPV6 Protocol
IPV6: IPsec transport
IPV6: IPsec tunnel mode
IPV6: IPsec BEETmode
IPV6: IPV6-in-IPV4 tunnel
IPV6: IPV6: multicast routing
IPV6: multicast policy routing
IPV6: PIM-SM version 2 support 

and I was able to successfully get zebra and ospf6d running and the routing table was properly built showing all the IPv6 address on my network.

Recently I upgraded to TI's SDK7 which uses 3.12 of the kernel. I enabled the same options in the .config file, but this time only the local IPV6 addresses are added to the zebra routing table. There are no OSPF routes added. Since there are no routes, I cannot even do a ping6 to any IPv6 address on my network.

Upon further investigation I found a clue. When I telnet into the OSPF6D terminal I have found that it is listing both of my ports as being "down":

ospf6d# show ipv6 ospf6 interface
eth0 is down, type UNKNOWN
Interface ID: 0
Internet Address:
Instance ID 0, Interface MTU 0 (autodetect: 0)
MTU mismatch detection: enabled
Area ID 0.0.0.0, Cost 1
State Down, Transmit Delay 1 sec, Priority 1
Timer intervals configured:
Hello 10, Dead 40, Retransmit 5
DR: 0.0.0.0 BDR: 0.0.0.0
Number of I/F scoped LSAs is 0
0 Pending LSAs for LSUpdate in Time 00:00:00 [thread off]
0 Pending LSAs for LSAck in Time 00:00:00 [thread off]
eth1 is down, type UNKNOWN
Interface ID: 0
Internet Address:
Instance ID 0, Interface MTU 0 (autodetect: 0)
MTU mismatch detection: enabled
Area ID 0.0.0.0, Cost 1
State Down, Transmit Delay 1 sec, Priority 1
Timer intervals configured:
Hello 10, Dead 40, Retransmit 5
DR: 0.0.0.0 BDR: 0.0.0.0
Number of I/F scoped LSAs is 0
0 Pending LSAs for LSUpdate in Time 00:00:00 [thread off]
0 Pending LSAs for LSAck in Time 00:00:00 [thread off]

Using 3.2 of the kernel shows that both interfaces are up in OSPF6D.  I am using the same hardware to run both of these versions of the kernel, but I am getting very different results.

Any advice?

  • Here is some additional info. 

    Output from ifconfig:

    eth0      Link encap:Ethernet  HWaddr BC:6A:29:C6:D4:85                        
              inet addr:192.168.0.3  Bcast:192.168.0.255  Mask:255.255.255.0       
              inet6 addr: fe80::be6a:29ff:fec6:d485/64 Scope:Link                  
              inet6 addr: 2001:0:bc:6a:29:c6:d4:85/128 Scope:Global                
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                   
              RX packets:9496 errors:0 dropped:0 overruns:0 frame:0                
              TX packets:6478 errors:0 dropped:0 overruns:0 carrier:0              
              collisions:0 txqueuelen:1000                                         
              RX bytes:8296582 (7.9 MiB)  TX bytes:951821 (929.5 KiB)              
              Interrupt:56                                                         
                                                                                   
    eth1      Link encap:Ethernet  HWaddr BC:6A:29:C6:D4:86                        
              inet6 addr: fe80::be6a:29ff:fec6:d486/64 Scope:Link                  
              inet6 addr: 2001:0:bc:6a:29:c6:d4:86/128 Scope:Global                
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                   
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0                   
              TX packets:120 errors:0 dropped:0 overruns:0 carrier:0               
              collisions:0 txqueuelen:1000                                         
              RX bytes:0 (0.0 B)  TX bytes:12763 (12.4 KiB)                        
                                                                                   
    eth1:avahi Link encap:Ethernet  HWaddr BC:6A:29:C6:D4:86                       
              inet addr:169.254.9.253  Bcast:169.254.255.255  Mask:255.255.0.0     
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                   
                                                                                   
    lo        Link encap:Local Loopback                                            
              inet addr:127.0.0.1  Mask:255.0.0.0                                  
              inet6 addr: ::1/128 Scope:Host                                       
              UP LOOPBACK RUNNING  MTU:65536  Metric:1                             
              RX packets:130 errors:0 dropped:0 overruns:0 frame:0                 
              TX packets:130 errors:0 dropped:0 overruns:0 carrier:0               
              collisions:0 txqueuelen:0                                             

    Output from zebra show interface:

    Router# show interface                                                         
    Interface eth0 is up, line protocol detection is disabled                      
      index 3 metric 1 mtu 1500                                                    
      flags: <UP,BROADCAST,RUNNING,MULTICAST>                                      
      HWaddr: bc:6a:29:c6:d4:85                                                    
      inet 192.168.0.3/24 broadcast 192.168.0.255                                  
      inet6 2001:0:bc:6a:29:c6:d4:85/128                                           
      inet6 fe80::be6a:29ff:fec6:d485/64                                           
    Interface eth1 is up, line protocol detection is disabled                      
      index 4 metric 1 mtu 1500                                                    
      flags: <UP,BROADCAST,RUNNING,MULTICAST>                                      
      HWaddr: bc:6a:29:c6:d4:86                                                    
      inet 169.254.9.253/16 broadcast 169.254.255.255 eth1:avahi                   
      inet6 2001:0:bc:6a:29:c6:d4:86/128                                           
      inet6 fe80::be6a:29ff:fec6:d486/64                                           
    Interface lo is up, line protocol detection is disabled                        
      index 1 metric 1 mtu 65536                                                   
      flags: <UP,LOOPBACK,RUNNING>                                                 
      inet 127.0.0.1/8                                                             
      inet6 ::1/128                                                                
    Interface sit0 is down                                                         
      index 2 metric 1 mtu 1480                                                    
      flags: <NOARP>                                                               
    Router#  

  • I am attempting to do some proof of concept work with OSPF6D and zebra version 0.99.22.4.  I have two PCs hooked up to each other.  Each with an IPV6 address with a /128 mask so they are each on their own network.  The ospf6d.conf file looks like this:

     

    hostname ospf6d

    password zebra

    log stdout

    log file /etc/quagga/ospf6d.log

    debug ospf6 message all

    !

    !enable password please-set-at-here

    !

    interface eth0

    !

    interface eth1

    !

    router ospf6

    router-id 0.0.0.0

    redistribute kernel

    redistribute connected

    redistribute ripng

    redistribute static

    interface eth0 area 0.0.0.0

    interface eth1 area 0.0.0.0

    !

    line vty

    !

     

    The other pc has a router-id of 0.0.0.1

     

    The zebra.conf file looks like this:

    ! -*- zebra -*-

    !

    ! zebra sample configuration file

    !

    ! $Id: zebra.conf.sample,v 1.1 2002/12/13 20:15:30 paul Exp $

    !

    hostname Router

    password zebra

    enable password zebra

    !

    ! Interface's description.

    interface eth0

    link-detect

    no ipv6 nd suppress-ra

    !

    interface eth1

    link-detect

    no ipv6 nd suppress-ra

    !

    !interface lo

    ! description test of desc.

    !

    !interface sit0

    ! multicast               

    !                         

    ! Static default route sample.

    !                            

    !ip route 0.0.0.0/0 203.181.89.241

    !                                

    log file /home/root/zebra.log    

    !                                

    line vty                         

    !  

     

     

    When I boot the machines everything comes up fine and I can do a ping6 from one machine to the other with no issues.  But after about 2 minutes one of my machines stops acknowledging the hello messages from the other machine.  Eventually it times out and purges all the routes in its routing table.  The ping6 then stops working.

     

    The machine that has this problem is an am335x-evm board.  I am using SDK 7 which provides Linux version 3.12.  When I did this using their SDK 6 which was Linux version 3.2 I did not have this problem.  The routing tables were built just fine and stayed that way.

     

    When the am335x-evm loses its routing and OSPF6D stops I used tcpdump on the evm board to see what was going on.  Suddenly it started working again.  I killed the tcpdump and everything ran just fine for about 10 minutes then stopped.  Once again I tried the tcpdump and it started working again.  In the /var/log/messages I see:

     Mar 31 06:41:38 am335x-evm user.info kernel: [ 1700.946136] device eth0 entered promiscuous mode

    Mar 31 06:41:49 am335x-evm user.info kernel: [ 1711.185001] device eth0 left promiscuous mode

     Seems like when the driver is in promiscuous mode everything works.  Could this be a driver issue?

  • Additional information:


    If I put the port into promiscuous mode the problem goes away.  I don't think this will be an ideal situation since I have multiple Ethernet ports on the board and I can only put one port in promiscuous mode.

  • Hi Tim,

    did you have luck getting am335x working with OSPF?

    FYI: a workaround for multicast reception over VLAN.

    Yegor

  • Yes.  I have ospf6d working on the 3.12 kernel.  There was actually a bug in the Linux code that a TI engineer had to fix.  A patch was provided to us an it works now.