struct flow;
struct ofpbuf;
+#define CFM_RANDOM_VLAN UINT16_MAX
+
#define CFM_FAULT_REASONS \
CFM_FAULT_REASON(RECV, recv) \
CFM_FAULT_REASON(RDI, rdi) \
int interval; /* The requested transmission interval. */
bool extended; /* Run in extended mode. */
bool opup; /* Operational State. */
- uint16_t ccm_vlan; /* CCM Vlan tag. Zero if none. */
+ uint16_t ccm_vlan; /* CCM Vlan tag. Zero if none.
+ CFM_RANDOM_VLAN if random. */
uint8_t ccm_pcp; /* CCM Priority. Zero if none. */
};
bool cfm_should_process_flow(const struct cfm *cfm, const struct flow *);
void cfm_process_heartbeat(struct cfm *, const struct ofpbuf *packet);
int cfm_get_fault(const struct cfm *);
+int cfm_get_health(const struct cfm *);
bool cfm_get_opup(const struct cfm *);
void cfm_get_remote_mpids(const struct cfm *, const uint64_t **rmps,
size_t *n_rmps);