OSPF endianess fix

Ondrej Feela Filip feela at network.cz
Sun Sep 7 00:03:13 CEST 2003


On Fri, 5 Sep 2003, David Rohleder wrote:

> Rani Assaf <rani at paname.org> writes:
> 
> > Hello,
> >
> > The attached  patch fixes two  (big-)endianess issues in OSPF  which lead
> > bird to stuck in EXSTART state.
> >
> > Patch tested on a PPC machine against a Cisco router.
> 
> I think that preffered way would be to use correct ntoh(3) library
> call while receiving LSA packet. Still doesn't matter, because BIRD

It's not so easy, try to look into the code.

> doesn't support multiple OSPF areas :-( (as far as i know).

How do the two things correlate?

> 
> 
> >
> > Regards,
> > Rani
> >
> > diff -ru bird-1.0.7/proto/ospf/lsalib.c bird-1.0.7-debian/proto/ospf/lsalib.c
> > --- bird-1.0.7/proto/ospf/lsalib.c	2003-08-14 10:13:14.000000000 +0200
> > +++ bird-1.0.7-debian/proto/ospf/lsalib.c	2003-09-02 03:54:22.000000000 +0200
> > @@ -7,6 +7,7 @@
> >   */
> >  
> >  #include "ospf.h"
> > +#include <stdlib.h>
> >  
> >  void
> >  flush_lsa(struct top_hash_entry *en, struct ospf_area *oa)
> > @@ -376,7 +377,11 @@
> >    y = 510 - c0 - x;
> >    if (y > 255) y -= 255;
> >  
> > +#ifdef CPU_LITTLE_ENDIAN
> >    chsum= x + (y << 8);
> > +#else
> > +  chsum= y + (x << 8);
> > +#endif
> >    h->checksum = chsum;
> >    return chsum;
> >  }
> > diff -ru bird-1.0.7/proto/ospf/ospf.h bird-1.0.7-debian/proto/ospf/ospf.h
> > --- bird-1.0.7/proto/ospf/ospf.h	2003-08-14 10:13:14.000000000 +0200
> > +++ bird-1.0.7-debian/proto/ospf/ospf.h	2003-09-02 03:14:10.000000000 +0200
> > @@ -178,10 +178,17 @@
> >  };
> >  
> >  struct immsb {
> > +#ifdef CPU_LITTLE_ENDIAN
> >    u8 ms:1;
> >    u8 m:1;
> >    u8 i:1;
> >    u8 padding:5;
> > +#else
> > +  u8 padding:5;
> > +  u8 i:1;
> > +  u8 m:1;
> > +  u8 ms:1;
> > +#endif
> >  };
> >  
> >  union imms {
> > @@ -223,10 +230,17 @@
> >  };
> >  
> >  struct vebb {
> > +#ifdef CPU_LITTLE_ENDIAN
> >    u8 b:1;
> >    u8 e:1;
> >    u8 v:1;
> >    u8 padding:5;
> > +#else
> > +  u8 padding:5;
> > +  u8 v:1;
> > +  u8 e:1;
> > +  u8 b:1;
> > +#endif
> >  };
> >  
> >  union veb {
> >
> >
> 
> 




More information about the Bird-users mailing list