亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mld6igmp_group_record.hh

?? MLDv2 support igmpv3 lite
?? HH
字號:
// -*- c-basic-offset: 4; tab-width: 8; indent-tabs-mode: t -*-// Copyright (c) 2001-2008 XORP, Inc.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the "Software")// to deal in the Software without restriction, subject to the conditions// listed in the XORP LICENSE file. These conditions include: you must// preserve this copyright notice, and you cannot mention the copyright// holders in advertising related to the Software without their permission.// The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This// notice is a summary of the XORP LICENSE file; the license in that file is// legally binding.//// The Lightweight IGMP/MLD modifications to this file are copyrighted by://// Copyright (c) 2008 Huawei Technologies Co. Ltd//// $XORP: xorp/contrib/mld6igmp_lite/mld6igmp_group_record.hh,v 1.3 2008/07/23 05:09:49 pavlin Exp $#ifndef __MLD6IGMP_MLD6IGMP_GROUP_RECORD_HH__#define __MLD6IGMP_MLD6IGMP_GROUP_RECORD_HH__//// IGMP and MLD group record.//#include <map>#include <set>#include "libxorp/ipvx.hh"#include "libxorp/timer.hh"#include "mld6igmp_source_record.hh"//// Constants definitions////// Structures/classes, typedefs and macros//class Mld6igmpVif;/** * @short A class to store information about multicast group membership. */class Mld6igmpGroupRecord {public:    /**     * Constructor for a given vif and group address.     *      * @param mld6igmp_vif the interface this entry belongs to.     * @param group the multicast group address.     */    Mld6igmpGroupRecord(Mld6igmpVif& mld6igmp_vif, const IPvX& group);        /**     * Destructor.     */    ~Mld6igmpGroupRecord();    /**     * Get the vif this entry belongs to.     *      * @return a reference to the vif this entry belongs to.     */    Mld6igmpVif& mld6igmp_vif()	const	{ return (_mld6igmp_vif);	}        /**     * Get the multicast group address.     *      * @return the multicast group address.     */    const IPvX&	group() const		{ return (_group); }    /**     * Get the corresponding event loop.     *     * @return the corresponding event loop.     */    EventLoop& eventloop();    /**     * Test whether the filter mode is INCLUDE.     *     * @return true if the filter mode is INCLUDE.     */    bool is_include_mode() const	{ return (this->timeout_sec() == 0); }    /**     * Test whether the filter mode is EXCLUDE.     *     * @return true if the filter mode is EXCLUDE.     */    bool is_asm_mode() const	{ return (! (this->timeout_sec() == 0)); }    /**     * Set the filter mode to INCLUDE.     */    void set_include_mode()		{ }    /**     * Set the filter mode to asm.     */    void set_exclude_mode()		{ }    /**     * Test whether the entry is unused.     *     * @return true if the entry is unused, otherwise false.     */    bool is_unused() const;    /**     * Find a source that should be forwarded.     *     * @param source the source address.     * @return the corresponding source record (@ref Mld6igmpSourceRecord)     * if found, otherwise NULL.     */    Mld6igmpSourceRecord* find_do_forward_source(const IPvX& source);    /**     * Find a source that should not be forwarded.     *     * @param source the source address.     * @return the corresponding source record (@ref Mld6igmpSourceRecord)     * if found, otherwise NULL.     */    Mld6igmpSourceRecord* find_dont_forward_source(const IPvX& source);    /**     * Get a reference to the set of sources to forward.     *     * @return a reference to the set of sources to forward.     */    const Mld6igmpSourceSet& do_forward_sources() const { return (_do_forward_sources); }    /**     * Get a reference to the set of sources not to forward.     *     * @return a reference to the set of sources not to forward.     */    /**     * Process MODE_IS_INCLUDE report.     *     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_mode_is_include(const set<IPvX>& sources,				 const IPvX& last_reported_host);    /**     * Process MODE_IS_EXCLUDE report.     *     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_mode_is_exclude(const set<IPvX>& sources,				 const IPvX& last_reported_host);    /**     * Process CHANGE_TO_INCLUDE_MODE report.     *     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_change_to_include_mode(const set<IPvX>& sources,					const IPvX& last_reported_host);    /**     * Process CHANGE_TO_EXCLUDE_MODE report.     *     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_change_to_exclude_mode(const set<IPvX>& sources,					const IPvX& last_reported_host);    /**     * Process ALLOW_NEW_SOURCES report.     *     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_allow_new_sources(const set<IPvX>& sources,				   const IPvX& last_reported_host);    /**     * Process BLOCK_OLD_SOURCES report.     *     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_block_old_sources(const set<IPvX>& sources,				   const IPvX& last_reported_host);    /**     * Lower the group timer.     *     * @param timeval the timeout interval the timer should be lowered to.     */    void lower_group_timer(const TimeVal& timeval);    /**     * Lower the source timer for a set of sources.     *     * @param sources the source addresses.     * @param timeval the timeout interval the timer should be lowered to.     */    void lower_source_timer(const set<IPvX>& sources, const TimeVal& timeval);    /**     * Take the appropriate actions for a source that has expired.     *     * @param source_record the source record that has expired.     */    void source_expired(Mld6igmpSourceRecord* source_record);    /**     * Get the number of seconds until the group timer expires.     *      * @return the number of seconds until the group timer expires.     */    uint32_t	timeout_sec()	const;    /**     * Get the number of seconds until the IGMPv1 host present timer expires.     *     * @return the number of seconds until the IGMPv1 host present timer     * expires.     */    uint32_t	igmpv1_host_present_timer_timeout_sec()	const;    /**     * Get the number of seconds until the IGMPv2/MLDv1 host present timer     * expires.     *     * @return the number of seconds until the IGMPv2/MLDv1 host present timer     * expires.     */    uint32_t	igmpv2_mldv1_host_present_timer_timeout_sec()	const;    /**     * Get the address of the host that last reported as member.     *      * @return the address of the host that last reported as member.     */    const IPvX& last_reported_host() const { return (_last_reported_host); }    /**     * Get a refererence to the group timer.     *     * @return a reference to the group timer.     */    XorpTimer& group_timer() { return _group_timer; }    /**     * Schedule periodic Group-Specific and Group-and-Source-Specific Query     * retransmission.     *     * If the sources list is empty, we schedule Group-Specific Query,     * otherwise we schedule Group-and-Source-Specific Query.     *     * @param sources the source addresses.     */    void schedule_periodic_group_query(const set<IPvX>& sources);    /**     * Record that an older Membership report message has been received.     *     * @param message_version the corresponding protocol version of the     * received message.     */    void received_older_membership_report(int message_version);    /**     * Test if the group is running in IGMPv1 mode.     *     * @return true if the group is running in IGMPv1 mode, otherwise false.     */    bool	is_igmpv1_mode() const;    /**     * Test if the group is running in IGMPv2 mode.     *     * @return true if the group is running in IGMPv2 mode, otherwise false.     */    bool	is_igmpv2_mode() const;    /**     * Test if the group is running in IGMPv3 mode.     *     * @return true if the group is running in IGMPv3 mode, otherwise false.     */    bool	is_igmpv3_mode() const;    /**     * Test if the group is running in MLDv1 mode.     *     * @return true if the group is running in MLDv1 mode, otherwise false.     */    bool	is_mldv1_mode() const;    /**     * Test if the group is running in MLDv2 mode.     *     * @return true if the group is running in MLDv2 mode, otherwise false.     */    bool	is_mldv2_mode() const;    /**     * Get the address family.     *     * @return the address family.     */    int		family() const { return _group.af(); }private:    /**     * Calculate the forwarding changes and notify the interested parties.     *     * @param old_is_include mode if true, the old filter mode was INCLUDE,     * otherwise was EXCLUDE.     * @param old_do_forward_sources the old set of sources to forward.     * @param old_dont_forward_sources the old set of sources not to forward.     */    void calculate_forwarding_changes(bool old_is_include_mode,				      const set<IPvX>& old_do_forward_sources) const;     /**     * Timeout: one of the older version host present timers has expired.     */    void	older_version_host_present_timer_timeout();    /**     * Timeout: the group timer has expired.     */    void	group_timer_timeout();    /**     * Periodic timeout: time to send the next Group-Specific and     * Group-and-Source-Specific Queries.     *     * @return true if the timer should be scheduled again, otherwise false.     */    bool	group_query_periodic_timeout();    /**     * Set the address of the host that last reported as member.     *     * @param v the address of the host that last reported as member.     */    void set_last_reported_host(const IPvX& v) { _last_reported_host = v; }    Mld6igmpVif& _mld6igmp_vif;		// The interface this entry belongs to    IPvX	_group;			// The multicast group address    Mld6igmpSourceSet _do_forward_sources;	// Sources to forward    IPvX	_last_reported_host;	// The host that last reported as member    // Timers indicating that hosts running older protocol version are present    XorpTimer	_igmpv1_host_present_timer;    XorpTimer	_igmpv2_mldv1_host_present_timer;    XorpTimer	_group_timer;		// Group timer for filter mode switch    XorpTimer	_group_query_timer;	// Timer for periodic Queries    size_t	_query_retransmission_count; // Count for periodic Queries};/** * @short A class to store information about a set of multicast groups. */class Mld6igmpGroupSet : public map<IPvX, Mld6igmpGroupRecord *> {public:    /**     * Constructor for a given vif.     *      * @param mld6igmp_vif the interface this set belongs to.     */    Mld6igmpGroupSet(Mld6igmpVif& mld6igmp_vif);        /**     * Destructor.     */    ~Mld6igmpGroupSet();    /**     * Find a group record.     *     * @param group the group address.     * @return the corresponding group record (@ref Mld6igmpGroupRecord)     * if found, otherwise NULL.     */    Mld6igmpGroupRecord* find_group_record(const IPvX& group);    /**     * Delete the payload of the set, and clear the set itself.     */    void delete_payload_and_clear();    /**     * Process MODE_IS_INCLUDE report.     *     * @param group the group address.     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_mode_is_include(const IPvX& group, const set<IPvX>& sources,				 const IPvX& last_reported_host);    /**     * Process MODE_IS_EXCLUDE report.     *     * @param group the group address.     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_mode_is_exclude(const IPvX& group, const set<IPvX>& sources,				 const IPvX& last_reported_host);    /**     * Process CHANGE_TO_INCLUDE_MODE report.     *     * @param group the group address.     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_change_to_include_mode(const IPvX& group,					const set<IPvX>& sources,					const IPvX& last_reported_host);    /**     * Process CHANGE_TO_EXCLUDE_MODE report.     *     * @param group the group address.     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_change_to_exclude_mode(const IPvX& group,					const set<IPvX>& sources,					const IPvX& last_reported_host);    /**     * Process ALLOW_NEW_SOURCES report.     *     * @param group the group address.     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_allow_new_sources(const IPvX& group,				   const set<IPvX>& sources,				   const IPvX& last_reported_host);    /**     * Process BLOCK_OLD_SOURCES report.     *     * @param group the group address.     * @param sources the source addresses.     * @param last_reported_host the address of the host that last reported     * as member.     */    void process_block_old_sources(const IPvX& group,				   const set<IPvX>& sources,				   const IPvX& last_reported_host);    /**     * Lower the group timer.     *     * @param group the group address.     * @param timeval the timeout interval the timer should be lowered to.     */    void lower_group_timer(const IPvX& group, const TimeVal& timeval);    /**     * Lower the source timer for a set of sources.     *     * @param group the group address.     * @param sources the source addresses.     * @param timeval the timeout interval the timer should be lowered to.     */    void lower_source_timer(const IPvX& group, const set<IPvX>& sources,			    const TimeVal& timeval);private:    Mld6igmpVif& _mld6igmp_vif;		// The interface this set belongs to};//// Global variables////// Global functions prototypes//#endif // __MLD6IGMP_MLD6IGMP_GROUP_RECORD_HH__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久精品性色| 亚洲男人的天堂网| 国产欧美日韩精品a在线观看| 国产精品国产三级国产aⅴ中文 | 欧美曰成人黄网| 日韩一区二区精品葵司在线| 久久久91精品国产一区二区精品 | 91精品国产乱码久久蜜臀| 日韩美女视频一区二区在线观看| 久久婷婷国产综合国色天香 | 4438x亚洲最大成人网| 国产日韩欧美在线一区| 亚洲国产精品精华液网站| 国产在线不卡一区| 欧美日韩精品三区| 欧美极品另类videosde| 老司机精品视频一区二区三区| www.一区二区| 国产精品入口麻豆原神| 国内久久精品视频| 精品国产一区二区三区不卡 | 久久精子c满五个校花| 日本在线观看不卡视频| 欧美日韩精品免费观看视频| 亚洲视频在线一区观看| 东方欧美亚洲色图在线| 久久久午夜精品| 国产精品一区二区三区网站| 日韩欧美在线不卡| 久久精品国产精品青草| 欧美mv日韩mv| 高清国产午夜精品久久久久久| 精品理论电影在线观看| 国产一区二区三区视频在线播放| 日韩一区二区三区av| 免费不卡在线视频| 久久精品免视看| 99国产精品国产精品毛片| 亚洲国产综合色| 亚洲激情五月婷婷| www.成人在线| 亚洲国产精品激情在线观看| 国产在线视频精品一区| 日韩国产一区二| 日韩激情视频网站| 亚洲免费观看在线视频| 97久久精品人人做人人爽50路| 亚洲激情五月婷婷| 久久久久久久电影| 在线欧美日韩精品| 国产在线视频一区二区三区| 国产蜜臀97一区二区三区 | 一区二区在线看| 在线播放91灌醉迷j高跟美女| 久久精品国产秦先生| 中文乱码免费一区二区| 欧美一区二区国产| 717成人午夜免费福利电影| 日本福利一区二区| 91小视频在线| av在线综合网| 91精彩视频在线观看| 色www精品视频在线观看| 91亚洲资源网| 欧美日本在线视频| 欧美日韩二区三区| 日韩欧美高清一区| 久久久久久免费网| 国产精品色婷婷久久58| 亚洲综合成人在线视频| 亚洲成a人片在线观看中文| 免费成人小视频| 一色桃子久久精品亚洲| 亚洲一区二区三区免费视频| 色成人在线视频| 亚洲视频一区二区在线| 国产精品综合网| 欧美日韩免费视频| 中文字幕一区二区三区在线播放 | 国产精华液一区二区三区| 成a人片国产精品| 欧美成人女星排行榜| 久久久久久久久久久久久夜| 亚洲高清免费观看| 17c精品麻豆一区二区免费| 国产精品全国免费观看高清| 日韩一区二区三区在线观看| 国产精品网曝门| 亚洲成人免费视频| 国产综合久久久久久鬼色| 在线免费观看日本欧美| 欧美成人aa大片| 视频在线在亚洲| 成人黄页毛片网站| 久久色.com| 国产原创一区二区| 日韩午夜精品视频| 午夜久久福利影院| 欧美日韩一级二级三级| 亚洲男人的天堂在线观看| 国产99精品国产| 亚洲欧美日韩国产综合在线| 91亚洲精品久久久蜜桃| 亚洲成a人片在线不卡一二三区| 欧美日韩在线一区二区| 黄色成人免费在线| 亚洲欧洲成人自拍| 欧美一级艳片视频免费观看| 国产精品资源在线看| 日本高清不卡视频| 偷窥少妇高潮呻吟av久久免费| 色诱视频网站一区| 亚洲国产日韩一区二区| 欧美日韩亚洲另类| 久草精品在线观看| 国产精品卡一卡二| 欧美一区二区啪啪| 国产91高潮流白浆在线麻豆| 亚洲一区二区四区蜜桃| 国产亚洲女人久久久久毛片| 欧美午夜精品免费| 国产一区不卡精品| 亚洲免费av观看| 久久夜色精品一区| 精品日韩一区二区三区| 在线一区二区三区四区五区 | 色av成人天堂桃色av| 九九精品视频在线看| 婷婷综合另类小说色区| 一色桃子久久精品亚洲| 精品噜噜噜噜久久久久久久久试看| 色悠悠亚洲一区二区| 成人午夜免费av| 福利一区二区在线观看| 日韩黄色免费电影| 亚洲电影激情视频网站| 国产精品女同一区二区三区| 日韩精品中文字幕一区二区三区| 色一区在线观看| 色综合一个色综合| 欧美做爰猛烈大尺度电影无法无天| 成人午夜视频免费看| 91片在线免费观看| 在线观看三级视频欧美| 欧美揉bbbbb揉bbbbb| 欧美日韩日日夜夜| 日韩欧美在线影院| 国产视频在线观看一区二区三区 | 欧洲激情一区二区| 精品视频在线视频| 欧美一卡2卡3卡4卡| 国产欧美一二三区| 亚洲欧美综合另类在线卡通| 最新欧美精品一区二区三区| 亚洲欧美另类久久久精品 | 韩国成人精品a∨在线观看| 国产99一区视频免费| 色综合天天性综合| 欧美影视一区在线| 国产亚洲成aⅴ人片在线观看| 亚洲免费高清视频在线| 精品一区二区三区的国产在线播放 | 欧美亚洲国产一区二区三区va| 欧美精品一区二区三区高清aⅴ| 久久在线免费观看| 亚洲成va人在线观看| 不卡一卡二卡三乱码免费网站| 欧美在线观看一二区| 亚洲欧洲一区二区在线播放| 青青草原综合久久大伊人精品| 成人免费视频一区| 久久婷婷一区二区三区| 奇米色777欧美一区二区| 欧美日韩一级视频| 亚洲国产成人高清精品| 91成人在线免费观看| 亚洲自拍偷拍麻豆| 欧美电影在哪看比较好| 午夜私人影院久久久久| 欧美在线高清视频| 免费不卡在线观看| 久久嫩草精品久久久久| 韩国av一区二区三区四区| 欧美精品一区二| 国产成人综合在线观看| 国产精品私房写真福利视频| 91香蕉视频mp4| 亚洲黄色尤物视频| 777a∨成人精品桃花网| 激情综合色综合久久| 中文成人综合网| 欧美亚洲国产bt| 国产一区二区视频在线播放| 国产精品美女久久久久aⅴ| 色又黄又爽网站www久久| 免费av网站大全久久| 中文字幕精品三区| 欧美精品久久99| eeuss鲁片一区二区三区在线观看| 亚洲免费资源在线播放|