IPv6 changes.

This commit is contained in:
Ondrej Filip 1999-04-13 18:21:53 +00:00
parent 43fc099b98
commit aec76c6e8e
3 changed files with 24 additions and 12 deletions

View file

@ -14,6 +14,8 @@ CF_DECLS
CF_KEYWORDS(OSPF, AREA) CF_KEYWORDS(OSPF, AREA)
%type <i> idval
CF_GRAMMAR CF_GRAMMAR
CF_ADDTO(proto, ospf_proto '}') CF_ADDTO(proto, ospf_proto '}')
@ -29,7 +31,7 @@ ospf_proto:
| ospf_proto ospf_area ';' | ospf_proto ospf_area ';'
; ;
ospf_area: AREA IPA { ospf_area: AREA idval ';' {
((struct ospf_config *)this_proto)->area = $2; ((struct ospf_config *)this_proto)->area = $2;
} }
; ;

View file

@ -91,7 +91,7 @@ byte
ospf_iface_clasify(struct iface *ifa) ospf_iface_clasify(struct iface *ifa)
{ {
if((ifa->flags & (IF_MULTIACCESS|IF_MULTICAST))== if((ifa->flags & (IF_MULTIACCESS|IF_MULTICAST))==
IF_MULTIACCESS|IF_MULTICAST) return OSPF_IM_MULTICAST; IF_MULTIACCESS|IF_MULTICAST) return OSPF_IM_BROADCAST;
if((ifa->flags & (IF_MULTIACCESS|IF_MULTICAST))== if((ifa->flags & (IF_MULTIACCESS|IF_MULTICAST))==
IF_MULTIACCESS) return OSPF_IM_NBMA; IF_MULTIACCESS) return OSPF_IM_NBMA;
return OSPF_IM_PTP; return OSPF_IM_PTP;
@ -112,9 +112,11 @@ ospf_iface_default(struct ospf_iface *ifa)
ifa->autype=0; ifa->autype=0;
for(i=0;i<8;i++) ifa->aukey[i]=0; for(i=0;i<8;i++) ifa->aukey[i]=0;
ifa->options=0; ifa->options=0;
ifa->dr=ipa_from_u32(0x00000000); ifa->drip=ipa_from_u32(0x00000000);
ifa->bdr=ipa_from_u32(0x00000000); ifa->drid=0;
ifa->mode=ospf_iface_clasify(ifa->iface); ifa->bdrip=ipa_from_u32(0x00000000);
ifa->bdrid=0;
ifa->type=ospf_iface_clasify(ifa->iface);
} }
void void

View file

@ -10,12 +10,18 @@
#define _BIRD_OSPF_H_ #define _BIRD_OSPF_H_
#define OSPF_PROTO 89 #define OSPF_PROTO 89
#ifndef IPV6
#define AllSPFRouters ipa_from_u32(0xe0000005) /* 224.0.0.5 */ #define AllSPFRouters ipa_from_u32(0xe0000005) /* 224.0.0.5 */
#define AllDRouters ipa_from_u32(0xe0000006) /* 224.0.0.6 */ #define AllDRouters ipa_from_u32(0xe0000006) /* 224.0.0.6 */
#else
#error Multicast address not defined
#endif
struct ospf_config { struct ospf_config {
struct proto_config c; struct proto_config c;
ip_addr area; /* Area ID !!! This is wrong !!! */ u32 area; /* Area ID !!! This is wrong !!!
* Should respect interface */
list iface_list; list iface_list;
}; };
@ -35,12 +41,14 @@ struct ospf_iface {
u16 autype; u16 autype;
u8 aukey[8]; u8 aukey[8];
u8 options; u8 options;
ip_addr dr; /* Designated router */ ip_addr drip; /* Designated router */
ip_addr bdr; /* Backup DR */ u32 drid;
byte mode; ip_addr bdrip; /* Backup DR */
#define OSPF_IM_MULTICAST 0 u32 bdrid;
#define OSPF_IM_PTP 1 int type;
#define OSPF_IM_NBMA 2 #define OSPF_IM_BROADCAST 0
#define OSPF_IM_NBMA 1
#define OSPF_IM_PTP 2
/* Default values for interface parameters */ /* Default values for interface parameters */
#define COST_D 10 #define COST_D 10