xorp

test_build_lsa.hh

00001 // -*- c-basic-offset: 4; tab-width: 8; indent-tabs-mode: t -*-
00002 // vim:set sts=4 ts=8:
00003 
00004 // Copyright (c) 2001-2009 XORP, Inc.
00005 //
00006 // This program is free software; you can redistribute it and/or modify
00007 // it under the terms of the GNU General Public License, Version 2, June
00008 // 1991 as published by the Free Software Foundation. Redistribution
00009 // and/or modification of this program under the terms of any other
00010 // version of the GNU General Public License is not permitted.
00011 // 
00012 // This program is distributed in the hope that it will be useful, but
00013 // WITHOUT ANY WARRANTY; without even the implied warranty of
00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For more details,
00015 // see the GNU General Public License, Version 2, a copy of which can be
00016 // found in the XORP LICENSE.gpl file.
00017 // 
00018 // XORP Inc, 2953 Bunker Hill Lane, Suite 204, Santa Clara, CA 95054, USA;
00019 // http://xorp.net
00020 
00021 // $XORP: xorp/ospf/test_build_lsa.hh,v 1.11 2008/10/02 21:57:49 bms Exp $
00022 
00023 #ifndef __OSPF_TEST_BUILD_LSA_HH__
00024 #define __OSPF_TEST_BUILD_LSA_HH__
00025 
00026 #include "libxorp/tokenize.hh"
00027 
00028 class BuildLsa {
00029  public:
00030     BuildLsa(OspfTypes::Version version) : _version(version)
00031     {}
00032 
00037     Lsa *generate(Args& args);
00038 
00039  private:
00040     OspfTypes::Version _version;
00041 
00042     Options get_options(Lsa *lsa);
00043 
00044     void set_options(Lsa *lsa, Options& options);
00045 
00046     bool common_header(Lsa *lsa, const string& word, Args& args);
00047 
00048     bool router_link(RouterLsa *lsa, const string& word, Args& args);
00049 
00050     Lsa *router_lsa(Args& args);
00051 
00052     Lsa *network_lsa(Args& args);
00053 
00054     IPv6Prefix ipv6prefix(Args& args, bool use_metric = false);
00055 
00056     Lsa *summary_network_lsa(Args& args);
00057 
00058     Lsa *summary_router_lsa(Args& args);
00059 
00060     Lsa *as_external_lsa(Args& args);
00061 
00062     Lsa *type_7_lsa(Args& args);
00063 
00064     Lsa *link_lsa(Args& args);
00065 
00066     Lsa *intra_area_prefix_lsa(Args& args);
00067 };
00068 
00069 #endif // __OSPF_TEST_BUILD_LSA_HH__
 All Classes Namespaces Functions Variables Typedefs Enumerations