mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
IPv6 changes.
This commit is contained in:
parent
43fc099b98
commit
aec76c6e8e
@ -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;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user