Revision 145368f5 proto/ospf/rt.h

View differences:

proto/ospf/rt.h
16 16

  
17 17
typedef struct orta
18 18
{
19
  int type;
19
  u8 type;			/* RTS_OSPF_* */
20
  u8 nhs_reuse;			/* Whether nhs nodes can be reused during merging */
20 21
  u32 options;
21 22
  /*
22 23
   * For ORT_ROUTER routes, options field are router-LSA style
......
93 94
 * - n.metric1 may be at most a small multiple of LSINFINITY,
94 95
 *   therefore sums do not overflow
95 96
 * - n.oa is always non-NULL
96
 * - n.nhs is always non-NULL with one exception - configured stubnet
97
 *   nodes (in po->rtf).
97
 * - n.nhs is always non-NULL unless it is configured stubnet
98
 * - n.en is non-NULL for external routes, NULL for intra/inter area routes.
98 99
 * - oa->rtr does not contain calculating router itself
99 100
 *
100
 * There are three types of nexthops in nhs fields:
101
 * There are four types of nexthops in nhs fields:
101 102
 * - gateway nexthops (non-NULL iface, gw != IPA_NONE)
102 103
 * - device nexthops (non-NULL iface, gw == IPA_NONE)
103 104
 * - dummy vlink nexthops (NULL iface, gw == IPA_NONE)
104
 * These three types don't mix, nhs field contains either
105
 * one device, one vlink node, or one/more gateway nodes.
105
 * - configured stubnets (nhs is NULL, only RTS_OSPF orta nodes in po->rtf)
106
 *
107
 * Dummy vlink nexthops and configured stubnets cannot be mixed with
108
 * regular ones, nhs field contains either list of gateway+device nodes,
109
 * one vlink node, or NULL for configured stubnet.
110
 *
111
 * Dummy vlink nexthops can appear in both network (rtf) and backbone area router
112
 * (rtr) tables for regular and inter-area routes, but only if areano > 1. They are
113
 * replaced in ospf_rt_sum_tr() and removed in ospf_rt_abr1(), therefore cannot
114
 * appear in ASBR pre-selection and external routes processing.
106 115
 */
107 116

  
108 117
void ospf_rt_spf(struct proto_ospf *po);

Also available in: Unified diff