Commit f8aad5d5 authored by Ondrej Zajicek (work)'s avatar Ondrej Zajicek (work)
Browse files

Minor cleanups

parent 256cc8ee
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -490,7 +490,7 @@ int
channel_reconfigure(struct channel *c, struct channel_config *cf)
{
  /* FIXME: better handle these changes, also handle in_keep_filtered */
  if ((c->table != cf->table->table) || (c->ra_mode != cf->ra_mode))
  if ((c->table != cf->table->table) || (cf->ra_mode && (c->ra_mode != cf->ra_mode)))
    return 0;

  int import_changed = !filter_same(c->in_filter, cf->in_filter);
+1 −0
Original line number Diff line number Diff line
@@ -258,6 +258,7 @@ static inline int rte_is_filtered(rte *r) { return !!(r->flags & REF_FILTERED);


/* Types of route announcement, also used as flags */
#define RA_UNDEF	0		/* Undefined RA type */
#define RA_OPTIMAL	1		/* Announcement of optimal route change */
#define RA_ACCEPTED	2		/* Announcement of first accepted route */
#define RA_ANY		3		/* Announcement of any route change */
+5 −3
Original line number Diff line number Diff line
@@ -524,9 +524,13 @@ bgp_conn_enter_established_state(struct bgp_conn *conn)
    c->add_path_rx = (loc->add_path & BGP_ADD_PATH_RX) && (rem->add_path & BGP_ADD_PATH_TX);
    c->add_path_tx = (loc->add_path & BGP_ADD_PATH_TX) && (rem->add_path & BGP_ADD_PATH_RX);

    // XXXX reset back to non-ANY?
    /* Update RA mode */
    if (c->add_path_tx)
      c->c.ra_mode = RA_ANY;
    else if (c->cf->secondary)
      c->c.ra_mode = RA_ACCEPTED;
    else
      c->c.ra_mode = RA_OPTIMAL;
  }

  p->afi_map = mb_alloc(p->p.pool, num * sizeof(u32));
@@ -1411,8 +1415,6 @@ bgp_channel_init(struct channel *C, struct channel_config *CF)
  struct bgp_channel *c = (void *) C;
  struct bgp_channel_config *cf = (void *) CF;

  C->ra_mode = cf->secondary ? RA_ACCEPTED : RA_OPTIMAL;

  c->cf = cf;
  c->afi = cf->afi;
  c->desc = bgp_get_af_desc(c->afi);
+0 −12
Original line number Diff line number Diff line
@@ -453,18 +453,6 @@ bgp_unset_attr(ea_list **to, struct linpool *pool, uint code)
{ eattr *e = bgp_set_attr(to, pool, code, 0, 0); e->type = EAF_TYPE_UNDEF; }




/* Hack: although BA_NEXT_HOP attribute has type EAF_TYPE_IP_ADDRESS, in IPv6
 * we store two addesses in it - a global address and a link local address.
 */
#ifdef XXX
#define NEXT_HOP_LENGTH (2*sizeof(ip_addr))
static inline void set_next_hop(byte *b, ip_addr addr) { ((ip_addr *) b)[0] = addr; ((ip_addr *) b)[1] = IPA_NONE; }
#define NEXT_HOP_LENGTH sizeof(ip_addr)
static inline void set_next_hop(byte *b, ip_addr addr) { ((ip_addr *) b)[0] = addr; }
#endif

int bgp_encode_attrs(struct bgp_write_state *s, ea_list *attrs, byte *buf, byte *end);
ea_list * bgp_decode_attrs(struct bgp_parse_state *s, byte *data, uint len);

+1 −0
Original line number Diff line number Diff line
@@ -152,6 +152,7 @@ bgp_channel_start: bgp_afi

  this_channel = channel_config_new(&channel_bgp, desc->net, this_proto);
  BGP_CC->c.name = desc->name;
  BGP_CC->c.ra_mode = RA_UNDEF;
  BGP_CC->afi = $1;
  BGP_CC->gr_able = 0xff;	/* undefined */
};
Loading