diff options
| author | whitespace / reindent <invalid@invalid.invalid> | 2017-07-17 14:03:14 +0200 | 
|---|---|---|
| committer | whitespace / reindent <invalid@invalid.invalid> | 2017-07-17 14:04:07 +0200 | 
| commit | d62a17aedeb0eebdba98238874bb13d62c48dbf9 (patch) | |
| tree | 3b319b1d61c8b85b4d1f06adf8b844bb8a9b5107 /zebra/zebra_mpls.h | |
| parent | 888ac268a0077fc9ebd1218cec6ae472af0bfc40 (diff) | |
*: reindentreindent-master-after
indent.py `git ls-files | pcregrep '\.[ch]$' | pcregrep -v '^(ldpd|babeld|nhrpd)/'`
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'zebra/zebra_mpls.h')
| -rw-r--r-- | zebra/zebra_mpls.h | 363 | 
1 files changed, 163 insertions, 200 deletions
diff --git a/zebra/zebra_mpls.h b/zebra/zebra_mpls.h index 52b947c064..c8dab39210 100644 --- a/zebra/zebra_mpls.h +++ b/zebra/zebra_mpls.h @@ -39,12 +39,15 @@  #define MPLS_MAX_LABELS 2  /* Maximum # labels that can be pushed. */ -#define NHLFE_FAMILY(nhlfe)                        \ -  (((nhlfe)->nexthop->type == NEXTHOP_TYPE_IPV6 || \ -    (nhlfe)->nexthop->type == NEXTHOP_TYPE_IPV6_IFINDEX) ? AF_INET6 : AF_INET) +#define NHLFE_FAMILY(nhlfe)                                                    \ +	(((nhlfe)->nexthop->type == NEXTHOP_TYPE_IPV6                          \ +	  || (nhlfe)->nexthop->type == NEXTHOP_TYPE_IPV6_IFINDEX)              \ +		 ? AF_INET6                                                    \ +		 : AF_INET) -#define MPLS_LABEL_HELPSTR "Specify label(s) for this route\nOne or more " \ -                           "labels in the range (16-1048575) separated by '/'\n" +#define MPLS_LABEL_HELPSTR                                                     \ +	"Specify label(s) for this route\nOne or more "                        \ +	"labels in the range (16-1048575) separated by '/'\n"  /* Typedefs */ @@ -58,117 +61,110 @@ typedef struct zebra_fec_t_ zebra_fec_t;  /*   * (Outgoing) nexthop label forwarding entry configuration   */ -struct zebra_snhlfe_t_ -{ -  /* Nexthop information */ -  enum nexthop_types_t gtype; -  union g_addr gate; -  char *ifname; -  ifindex_t ifindex; +struct zebra_snhlfe_t_ { +	/* Nexthop information */ +	enum nexthop_types_t gtype; +	union g_addr gate; +	char *ifname; +	ifindex_t ifindex; -  /* Out label. */ -  mpls_label_t out_label; +	/* Out label. */ +	mpls_label_t out_label; -  /* Backpointer to base entry. */ -  zebra_slsp_t *slsp; +	/* Backpointer to base entry. */ +	zebra_slsp_t *slsp; -  /* Pointers to more outgoing information for same in-label */ -  zebra_snhlfe_t *next; -  zebra_snhlfe_t *prev; +	/* Pointers to more outgoing information for same in-label */ +	zebra_snhlfe_t *next; +	zebra_snhlfe_t *prev;  };  /*   * (Outgoing) nexthop label forwarding entry   */ -struct zebra_nhlfe_t_ -{ -  /* Type of entry - static etc. */ -  enum lsp_types_t type; +struct zebra_nhlfe_t_ { +	/* Type of entry - static etc. */ +	enum lsp_types_t type; -  /* Nexthop information (with outgoing label) */ -  struct nexthop *nexthop; +	/* Nexthop information (with outgoing label) */ +	struct nexthop *nexthop; -  /* Backpointer to base entry. */ -  zebra_lsp_t *lsp; +	/* Backpointer to base entry. */ +	zebra_lsp_t *lsp; -  /* Runtime info - flags, pointers etc. */ -  u_int32_t flags; +	/* Runtime info - flags, pointers etc. */ +	u_int32_t flags;  #define NHLFE_FLAG_CHANGED     (1 << 0)  #define NHLFE_FLAG_SELECTED    (1 << 1)  #define NHLFE_FLAG_MULTIPATH   (1 << 2)  #define NHLFE_FLAG_DELETED     (1 << 3)  #define NHLFE_FLAG_INSTALLED   (1 << 4) -  zebra_nhlfe_t *next; -  zebra_nhlfe_t *prev; -  u_char distance; +	zebra_nhlfe_t *next; +	zebra_nhlfe_t *prev; +	u_char distance;  };  /*   * Incoming label entry   */ -struct zebra_ile_t_ -{ -  mpls_label_t in_label; +struct zebra_ile_t_ { +	mpls_label_t in_label;  };  /*   * Label swap entry static configuration.   */ -struct zebra_slsp_t_ -{ -  /* Incoming label */ -  zebra_ile_t ile; - -  /* List of outgoing nexthop static configuration */ -  zebra_snhlfe_t *snhlfe_list; +struct zebra_slsp_t_ { +	/* Incoming label */ +	zebra_ile_t ile; +	/* List of outgoing nexthop static configuration */ +	zebra_snhlfe_t *snhlfe_list;  };  /*   * Label swap entry (ile -> list of nhlfes)   */ -struct zebra_lsp_t_ -{ -  /* Incoming label */ -  zebra_ile_t ile; +struct zebra_lsp_t_ { +	/* Incoming label */ +	zebra_ile_t ile; -  /* List of NHLFE, pointer to best and num equal-cost. */ -  zebra_nhlfe_t *nhlfe_list; -  zebra_nhlfe_t *best_nhlfe; -  u_int32_t num_ecmp; +	/* List of NHLFE, pointer to best and num equal-cost. */ +	zebra_nhlfe_t *nhlfe_list; +	zebra_nhlfe_t *best_nhlfe; +	u_int32_t num_ecmp; -  /* Flags */ -  u_int32_t flags; +	/* Flags */ +	u_int32_t flags;  #define LSP_FLAG_SCHEDULED        (1 << 0)  #define LSP_FLAG_INSTALLED        (1 << 1)  #define LSP_FLAG_CHANGED          (1 << 2) -  /* Address-family of NHLFE - saved here for delete. All NHLFEs */ -  /* have to be of the same AF */ -  u_char addr_family; +	/* Address-family of NHLFE - saved here for delete. All NHLFEs */ +	/* have to be of the same AF */ +	u_char addr_family;  };  /*   * FEC to label binding.   */ -struct zebra_fec_t_ -{ -  /* FEC (prefix) */ -  struct route_node *rn; +struct zebra_fec_t_ { +	/* FEC (prefix) */ +	struct route_node *rn; -  /* In-label - either statically bound or derived from label block. */ -  mpls_label_t label; +	/* In-label - either statically bound or derived from label block. */ +	mpls_label_t label; -  /* Label index (into global label block), if valid */ -  u_int32_t label_index; +	/* Label index (into global label block), if valid */ +	u_int32_t label_index; -  /* Flags. */ -  u_int32_t flags; +	/* Flags. */ +	u_int32_t flags;  #define FEC_FLAG_CONFIGURED       (1 << 0) -  /* Clients interested in this FEC. */ -  struct list *client_list; +	/* Clients interested in this FEC. */ +	struct list *client_list;  };  /* Function declarations. */ @@ -176,47 +172,42 @@ struct zebra_fec_t_  /*   * String to label conversion, labels separated by '/'.   */ -int -mpls_str2label (const char *label_str, u_int8_t *num_labels, -                mpls_label_t *labels); +int mpls_str2label(const char *label_str, u_int8_t *num_labels, +		   mpls_label_t *labels);  /*   * Label to string conversion, labels in string separated by '/'.   */ -char * -mpls_label2str (u_int8_t num_labels, mpls_label_t *labels, -                char *buf, int len, int pretty); +char *mpls_label2str(u_int8_t num_labels, mpls_label_t *labels, char *buf, +		     int len, int pretty);  /*   * Add/update global label block.   */ -int -zebra_mpls_label_block_add (struct zebra_vrf *zvrf, u_int32_t start_label, -                            u_int32_t end_label); +int zebra_mpls_label_block_add(struct zebra_vrf *zvrf, u_int32_t start_label, +			       u_int32_t end_label);  /*   * Delete global label block.   */ -int -zebra_mpls_label_block_del (struct zebra_vrf *vrf); +int zebra_mpls_label_block_del(struct zebra_vrf *vrf);  /*   * Display MPLS global label block configuration (VTY command handler).   */ -int -zebra_mpls_write_label_block_config (struct vty *vty, struct zebra_vrf *vrf); +int zebra_mpls_write_label_block_config(struct vty *vty, struct zebra_vrf *vrf);  /*   * Install dynamic LSP entry.   */ -int -zebra_mpls_lsp_install (struct zebra_vrf *zvrf, struct route_node *rn, struct route_entry *re); +int zebra_mpls_lsp_install(struct zebra_vrf *zvrf, struct route_node *rn, +			   struct route_entry *re);  /* - * Uninstall dynamic LSP entry, if any.  + * Uninstall dynamic LSP entry, if any.   */ -int -zebra_mpls_lsp_uninstall (struct zebra_vrf *zvrf, struct route_node *rn, struct route_entry *re); +int zebra_mpls_lsp_uninstall(struct zebra_vrf *zvrf, struct route_node *rn, +			     struct route_entry *re);  /*   * Registration from a client for the label binding for a FEC. If a binding @@ -226,24 +217,22 @@ zebra_mpls_lsp_uninstall (struct zebra_vrf *zvrf, struct route_node *rn, struct   * label from a locally configured label block (SRGB), if one exists and index   * is acceptable.   */ -int -zebra_mpls_fec_register (struct zebra_vrf *zvrf, struct prefix *p, -                         u_int32_t label_index, struct zserv *client); +int zebra_mpls_fec_register(struct zebra_vrf *zvrf, struct prefix *p, +			    u_int32_t label_index, struct zserv *client);  /*   * Deregistration from a client for the label binding for a FEC. The FEC   * itself is deleted if no other registered clients exist and there is no   * label bound to the FEC.   */ -int -zebra_mpls_fec_unregister (struct zebra_vrf *zvrf, struct prefix *p, -                           struct zserv *client); +int zebra_mpls_fec_unregister(struct zebra_vrf *zvrf, struct prefix *p, +			      struct zserv *client);  /*   * Cleanup any FECs registered by this client.   */ -int -zebra_mpls_cleanup_fecs_for_client (struct zebra_vrf *zvrf, struct zserv *client); +int zebra_mpls_cleanup_fecs_for_client(struct zebra_vrf *zvrf, +				       struct zserv *client);  /*   * Return FEC (if any) to which this label is bound. @@ -252,23 +241,21 @@ zebra_mpls_cleanup_fecs_for_client (struct zebra_vrf *zvrf, struct zserv *client   * TODO: Currently walks entire table, can optimize later with another   * hash..   */ -zebra_fec_t * -zebra_mpls_fec_for_label (struct zebra_vrf *zvrf, mpls_label_t label); +zebra_fec_t *zebra_mpls_fec_for_label(struct zebra_vrf *zvrf, +				      mpls_label_t label);  /*   * Inform if specified label is currently bound to a FEC or not.   */ -int -zebra_mpls_label_already_bound (struct zebra_vrf *zvrf, mpls_label_t label); +int zebra_mpls_label_already_bound(struct zebra_vrf *zvrf, mpls_label_t label);  /*   * Add static FEC to label binding. If there are clients registered for this   * FEC, notify them. If there are labeled routes for this FEC, install the   * label forwarding entry.   */ -int -zebra_mpls_static_fec_add (struct zebra_vrf *zvrf, struct prefix *p, -                           mpls_label_t in_label); +int zebra_mpls_static_fec_add(struct zebra_vrf *zvrf, struct prefix *p, +			      mpls_label_t in_label);  /*   * Remove static FEC to label binding. If there are no clients registered @@ -276,68 +263,60 @@ zebra_mpls_static_fec_add (struct zebra_vrf *zvrf, struct prefix *p,   * Note: Upon delete of static binding, if label index exists for this FEC,   * client may need to be updated with derived label.   */ -int -zebra_mpls_static_fec_del (struct zebra_vrf *zvrf, struct prefix *p); +int zebra_mpls_static_fec_del(struct zebra_vrf *zvrf, struct prefix *p);  /*   * Display MPLS FEC to label binding configuration (VTY command handler).   */ -int -zebra_mpls_write_fec_config (struct vty *vty, struct zebra_vrf *zvrf); +int zebra_mpls_write_fec_config(struct vty *vty, struct zebra_vrf *zvrf);  /*   * Display MPLS FEC to label binding (VTY command handler).   */ -void -zebra_mpls_print_fec_table (struct vty *vty, struct zebra_vrf *zvrf); +void zebra_mpls_print_fec_table(struct vty *vty, struct zebra_vrf *zvrf);  /*   * Display MPLS FEC to label binding for a specific FEC (VTY command handler).   */ -void -zebra_mpls_print_fec (struct vty *vty, struct zebra_vrf *zvrf, struct prefix *p); +void zebra_mpls_print_fec(struct vty *vty, struct zebra_vrf *zvrf, +			  struct prefix *p);  /*   * Install/uninstall a FEC-To-NHLFE (FTN) binding.   */ -int -mpls_ftn_update (int add, struct zebra_vrf *zvrf, enum lsp_types_t type, -		 struct prefix *prefix, enum nexthop_types_t gtype, -		 union g_addr *gate, ifindex_t ifindex, u_int8_t distance, -		 mpls_label_t out_label); +int mpls_ftn_update(int add, struct zebra_vrf *zvrf, enum lsp_types_t type, +		    struct prefix *prefix, enum nexthop_types_t gtype, +		    union g_addr *gate, ifindex_t ifindex, u_int8_t distance, +		    mpls_label_t out_label);  /*   * Install/update a NHLFE for an LSP in the forwarding table. This may be   * a new LSP entry or a new NHLFE for an existing in-label or an update of   * the out-label for an existing NHLFE (update case).   */ -int -mpls_lsp_install (struct zebra_vrf *zvrf, enum lsp_types_t type, -		  mpls_label_t in_label, mpls_label_t out_label, -		  enum nexthop_types_t gtype, union g_addr *gate, -		  ifindex_t ifindex); +int mpls_lsp_install(struct zebra_vrf *zvrf, enum lsp_types_t type, +		     mpls_label_t in_label, mpls_label_t out_label, +		     enum nexthop_types_t gtype, union g_addr *gate, +		     ifindex_t ifindex);  /*   * Uninstall a particular NHLFE in the forwarding table. If this is   * the only NHLFE, the entire LSP forwarding entry has to be deleted.   */ -int -mpls_lsp_uninstall (struct zebra_vrf *zvrf, enum lsp_types_t type, -		    mpls_label_t in_label, enum nexthop_types_t gtype, -		    union g_addr *gate, ifindex_t ifindex); +int mpls_lsp_uninstall(struct zebra_vrf *zvrf, enum lsp_types_t type, +		       mpls_label_t in_label, enum nexthop_types_t gtype, +		       union g_addr *gate, ifindex_t ifindex);  /*   * Uninstall all LDP NHLFEs for a particular LSP forwarding entry.   * If no other NHLFEs exist, the entry would be deleted.   */ -void -mpls_ldp_lsp_uninstall_all (struct hash_backet *backet, void *ctxt); +void mpls_ldp_lsp_uninstall_all(struct hash_backet *backet, void *ctxt);  /*   * Uninstall all LDP FEC-To-NHLFE (FTN) bindings of the given address-family.   */ -void -mpls_ldp_ftn_uninstall_all (struct zebra_vrf *zvrf, int afi); +void mpls_ldp_ftn_uninstall_all(struct zebra_vrf *zvrf, int afi);  #if defined(HAVE_CUMULUS)  /* @@ -346,10 +325,11 @@ mpls_ldp_ftn_uninstall_all (struct zebra_vrf *zvrf, int afi);   * be consistent - i.e., all paths either do a swap or do PHP. This is due   * to current HW restrictions.   */ -int -zebra_mpls_lsp_label_consistent (struct zebra_vrf *zvrf, mpls_label_t in_label, -                     mpls_label_t out_label, enum nexthop_types_t gtype, -                     union g_addr *gate, ifindex_t ifindex); +int zebra_mpls_lsp_label_consistent(struct zebra_vrf *zvrf, +				    mpls_label_t in_label, +				    mpls_label_t out_label, +				    enum nexthop_types_t gtype, +				    union g_addr *gate, ifindex_t ifindex);  #endif /* HAVE_CUMULUS */  /* @@ -359,10 +339,10 @@ zebra_mpls_lsp_label_consistent (struct zebra_vrf *zvrf, mpls_label_t in_label,   * Note: The label operation (swap or PHP) is common for the LSP entry (all   * NHLFEs).   */ -int -zebra_mpls_static_lsp_add (struct zebra_vrf *zvrf, mpls_label_t in_label, -                     mpls_label_t out_label, enum nexthop_types_t gtype, -                     union g_addr *gate, ifindex_t ifindex); +int zebra_mpls_static_lsp_add(struct zebra_vrf *zvrf, mpls_label_t in_label, +			      mpls_label_t out_label, +			      enum nexthop_types_t gtype, union g_addr *gate, +			      ifindex_t ifindex);  /*   * Delete static LSP entry. This may be the delete of one particular @@ -371,141 +351,124 @@ zebra_mpls_static_lsp_add (struct zebra_vrf *zvrf, mpls_label_t in_label,   * NOTE: Delete of the only NHLFE will also end up deleting the entire   * LSP configuration.   */ -int -zebra_mpls_static_lsp_del (struct zebra_vrf *zvrf, mpls_label_t in_label, -                           enum nexthop_types_t gtype, union g_addr *gate, -                           ifindex_t ifindex); +int zebra_mpls_static_lsp_del(struct zebra_vrf *zvrf, mpls_label_t in_label, +			      enum nexthop_types_t gtype, union g_addr *gate, +			      ifindex_t ifindex);  /*   * Schedule all MPLS label forwarding entries for processing.   * Called upon changes that may affect one or more of them such as   * interface or nexthop state changes.   */ -void -zebra_mpls_lsp_schedule (struct zebra_vrf *zvrf); +void zebra_mpls_lsp_schedule(struct zebra_vrf *zvrf);  /*   * Display MPLS label forwarding table for a specific LSP   * (VTY command handler).   */ -void -zebra_mpls_print_lsp (struct vty *vty, struct zebra_vrf *zvrf, mpls_label_t label, -                      u_char use_json); +void zebra_mpls_print_lsp(struct vty *vty, struct zebra_vrf *zvrf, +			  mpls_label_t label, u_char use_json);  /*   * Display MPLS label forwarding table (VTY command handler).   */ -void -zebra_mpls_print_lsp_table (struct vty *vty, struct zebra_vrf *zvrf, -                            u_char use_json); +void zebra_mpls_print_lsp_table(struct vty *vty, struct zebra_vrf *zvrf, +				u_char use_json);  /*   * Display MPLS LSP configuration of all static LSPs (VTY command handler).   */ -int -zebra_mpls_write_lsp_config (struct vty *vty, struct zebra_vrf *zvrf); +int zebra_mpls_write_lsp_config(struct vty *vty, struct zebra_vrf *zvrf);  /*   * Called upon process exiting, need to delete LSP forwarding   * entries from the kernel.   * NOTE: Currently supported only for default VRF.   */ -void -zebra_mpls_close_tables (struct zebra_vrf *zvrf); +void zebra_mpls_close_tables(struct zebra_vrf *zvrf);  /*   * Allocate MPLS tables for this VRF.   * NOTE: Currently supported only for default VRF.   */ -void -zebra_mpls_init_tables (struct zebra_vrf *zvrf); +void zebra_mpls_init_tables(struct zebra_vrf *zvrf);  /*   * Global MPLS initialization.   */ -void -zebra_mpls_init (void); +void zebra_mpls_init(void);  /*   * MPLS VTY.   */ -void -zebra_mpls_vty_init (void); +void zebra_mpls_vty_init(void);  /* Inline functions. */  /*   * Distance (priority) definition for LSP NHLFE.   */ -static inline u_char -lsp_distance (enum lsp_types_t type) +static inline u_char lsp_distance(enum lsp_types_t type)  { -  if (type == ZEBRA_LSP_STATIC) -    return (route_distance (ZEBRA_ROUTE_STATIC)); +	if (type == ZEBRA_LSP_STATIC) +		return (route_distance(ZEBRA_ROUTE_STATIC)); -  return 150; +	return 150;  }  /*   * Map RIB type to LSP type. Used when labeled-routes from BGP   * are converted into LSPs.   */ -static inline enum lsp_types_t -lsp_type_from_re_type (int re_type) +static inline enum lsp_types_t lsp_type_from_re_type(int re_type)  { -  switch (re_type) -    { -      case ZEBRA_ROUTE_STATIC: -        return ZEBRA_LSP_STATIC; -      case ZEBRA_ROUTE_BGP: -        return ZEBRA_LSP_BGP; -      default: -        return ZEBRA_LSP_NONE; -    } +	switch (re_type) { +	case ZEBRA_ROUTE_STATIC: +		return ZEBRA_LSP_STATIC; +	case ZEBRA_ROUTE_BGP: +		return ZEBRA_LSP_BGP; +	default: +		return ZEBRA_LSP_NONE; +	}  }  /* NHLFE type as printable string. */ -static inline const char * -nhlfe_type2str(enum lsp_types_t lsp_type) +static inline const char *nhlfe_type2str(enum lsp_types_t lsp_type)  { -  switch (lsp_type) -    { -      case ZEBRA_LSP_STATIC: -        return "Static"; -      case ZEBRA_LSP_LDP: -        return "LDP"; -      case ZEBRA_LSP_BGP: -        return "BGP"; -      default: -        return "Unknown"; -    } +	switch (lsp_type) { +	case ZEBRA_LSP_STATIC: +		return "Static"; +	case ZEBRA_LSP_LDP: +		return "LDP"; +	case ZEBRA_LSP_BGP: +		return "BGP"; +	default: +		return "Unknown"; +	}  } -static inline void -mpls_mark_lsps_for_processing(struct zebra_vrf *zvrf) +static inline void mpls_mark_lsps_for_processing(struct zebra_vrf *zvrf)  { -  if (!zvrf) -    return; +	if (!zvrf) +		return; -  zvrf->mpls_flags |= MPLS_FLAG_SCHEDULE_LSPS; +	zvrf->mpls_flags |= MPLS_FLAG_SCHEDULE_LSPS;  } -static inline void -mpls_unmark_lsps_for_processing(struct zebra_vrf *zvrf) +static inline void mpls_unmark_lsps_for_processing(struct zebra_vrf *zvrf)  { -  if (!zvrf) -    return; +	if (!zvrf) +		return; -  zvrf->mpls_flags &= ~MPLS_FLAG_SCHEDULE_LSPS; +	zvrf->mpls_flags &= ~MPLS_FLAG_SCHEDULE_LSPS;  } -static inline int -mpls_should_lsps_be_processed(struct zebra_vrf *zvrf) +static inline int mpls_should_lsps_be_processed(struct zebra_vrf *zvrf)  { -  if (!zvrf) -    return 0; +	if (!zvrf) +		return 0; -  return ((zvrf->mpls_flags & MPLS_FLAG_SCHEDULE_LSPS) ? 1 : 0); +	return ((zvrf->mpls_flags & MPLS_FLAG_SCHEDULE_LSPS) ? 1 : 0);  }  /* Global variables. */  | 
