Line data Source code
1 : /* 2 : * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. 3 : * Copyright Contributors to the OpenSDN project 4 : */ 5 : 6 : #ifndef vnsw_agent_flow_kstate_h 7 : #define vnsw_agent_flow_kstate_h 8 : 9 : class FlowKState : public Task { 10 : public: 11 : FlowKState(Agent *agent, const std::string &resp_ctx, int idx); 12 : FlowKState(Agent *agent, const std::string &resp_ctx, 13 : const std::string &iter_idx); 14 : virtual void SendResponse(KFlowResp *resp) const; 15 : 16 : virtual bool Run(); 17 0 : std::string Description() const { return "FlowKState"; } 18 : void SetFlowData(std::vector<KFlowInfo> &list, const vr_flow_entry *k_flow, 19 : int index) const; 20 0 : void set_evicted_flag(bool show_evicted) { evicted_ = show_evicted;} 21 : protected: 22 : std::string response_context_; 23 : int flow_idx_; 24 : bool evicted_; 25 : uint32_t flow_iteration_key_; 26 : private: 27 : Agent *agent_; 28 : void UpdateFlagStr(std::string &str, bool &set, bool tcp, unsigned sflag, 29 : unsigned cflag) const; 30 : const std::string FlagToStr(unsigned int flag) const; 31 : const std::string TcpFlagToStr(unsigned int flag) const; 32 : const std::string DropCodeToStr(uint8_t drop_code) const; 33 : void SetFlowHandle(KFlowResp *resp, const uint32_t idx) const; 34 : }; 35 : #endif