X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fcfm.c;h=297894ea654e41fc07226dcff736b971951e4518;hb=015ac88281952a1b43ad46e9e6300db1c6e3647b;hp=0bd41bf966ed4af7325508abde8239d56b85e4a6;hpb=7aaeab4df24b7e9460705b1dad1010eef0354c50;p=sliver-openvswitch.git diff --git a/lib/cfm.c b/lib/cfm.c index 0bd41bf96..297894ea6 100644 --- a/lib/cfm.c +++ b/lib/cfm.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2011, 2012 Nicira, Inc. + * Copyright (c) 2010, 2011, 2012, 2013 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -156,7 +156,7 @@ static unixctl_cb_func cfm_unixctl_show; static unixctl_cb_func cfm_unixctl_set_fault; static uint64_t -cfm_rx_packets(const struct cfm *cfm) OVS_REQ_WRLOCK(mutex) +cfm_rx_packets(const struct cfm *cfm) OVS_REQUIRES(mutex) { struct netdev_stats stats; @@ -168,7 +168,7 @@ cfm_rx_packets(const struct cfm *cfm) OVS_REQ_WRLOCK(mutex) } static const uint8_t * -cfm_ccm_addr(const struct cfm *cfm) +cfm_ccm_addr(struct cfm *cfm) { bool extended; atomic_read(&cfm->extended, &extended); @@ -204,7 +204,7 @@ ds_put_cfm_fault(struct ds *ds, int fault) } static void -cfm_generate_maid(struct cfm *cfm) OVS_REQ_WRLOCK(mutex) +cfm_generate_maid(struct cfm *cfm) OVS_REQUIRES(mutex) { const char *ovs_md_name = "ovs"; const char *ovs_ma_name = "ovs"; @@ -247,7 +247,7 @@ ccm_interval_to_ms(uint8_t interval) } static long long int -cfm_fault_interval(struct cfm *cfm) OVS_REQ_WRLOCK(mutex) +cfm_fault_interval(struct cfm *cfm) OVS_REQUIRES(mutex) { /* According to the 802.1ag specification we should assume every other MP * with the same MAID has the same transmission interval that we have. If @@ -289,7 +289,7 @@ cfm_is_valid_mpid(bool extended, uint64_t mpid) } static struct remote_mp * -lookup_remote_mp(const struct cfm *cfm, uint64_t mpid) OVS_REQ_WRLOCK(mutex) +lookup_remote_mp(const struct cfm *cfm, uint64_t mpid) OVS_REQUIRES(mutex) { struct remote_mp *rmp; @@ -648,9 +648,10 @@ cfm_set_netdev(struct cfm *cfm, const struct netdev *netdev) /* Returns true if 'cfm' should process packets from 'flow'. Sets * fields in 'wc' that were used to make the determination. */ bool -cfm_should_process_flow(const struct cfm *cfm, const struct flow *flow, +cfm_should_process_flow(const struct cfm *cfm_, const struct flow *flow, struct flow_wildcards *wc) { + struct cfm *cfm = CONST_CAST(struct cfm *, cfm_); bool check_tnl_key; atomic_read(&cfm->check_tnl_key, &check_tnl_key); @@ -795,7 +796,7 @@ out: } static int -cfm_get_fault__(const struct cfm *cfm) OVS_REQ_WRLOCK(mutex) +cfm_get_fault__(const struct cfm *cfm) OVS_REQUIRES(mutex) { if (cfm->fault_override >= 0) { return cfm->fault_override ? CFM_FAULT_OVERRIDE : 0; @@ -839,8 +840,9 @@ cfm_get_health(const struct cfm *cfm) OVS_EXCLUDED(mutex) * 'cfm' is operationally down, or -1 if 'cfm' has no operational state * (because it isn't in extended mode). */ int -cfm_get_opup(const struct cfm *cfm) OVS_EXCLUDED(mutex) +cfm_get_opup(const struct cfm *cfm_) OVS_EXCLUDED(mutex) { + struct cfm *cfm = CONST_CAST(struct cfm *, cfm_); bool extended; int opup; @@ -866,7 +868,7 @@ cfm_get_remote_mpids(const struct cfm *cfm, uint64_t **rmps, size_t *n_rmps) } static struct cfm * -cfm_find(const char *name) OVS_REQ_WRLOCK(&mutex) +cfm_find(const char *name) OVS_REQUIRES(mutex) { struct cfm *cfm; @@ -879,7 +881,7 @@ cfm_find(const char *name) OVS_REQ_WRLOCK(&mutex) } static void -cfm_print_details(struct ds *ds, const struct cfm *cfm) OVS_REQ_WRLOCK(&mutex) +cfm_print_details(struct ds *ds, struct cfm *cfm) OVS_REQUIRES(mutex) { struct remote_mp *rmp; bool extended; @@ -926,7 +928,7 @@ cfm_unixctl_show(struct unixctl_conn *conn, int argc, const char *argv[], void *aux OVS_UNUSED) OVS_EXCLUDED(mutex) { struct ds ds = DS_EMPTY_INITIALIZER; - const struct cfm *cfm; + struct cfm *cfm; ovs_mutex_lock(&mutex); if (argc > 1) {