JP5087062B2 - 経路計算装置、経路計算方法、および、経路計算プログラム - Google Patents
経路計算装置、経路計算方法、および、経路計算プログラム Download PDFInfo
- Publication number
- JP5087062B2 JP5087062B2 JP2009258484A JP2009258484A JP5087062B2 JP 5087062 B2 JP5087062 B2 JP 5087062B2 JP 2009258484 A JP2009258484 A JP 2009258484A JP 2009258484 A JP2009258484 A JP 2009258484A JP 5087062 B2 JP5087062 B2 JP 5087062B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- address
- route calculation
- information
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
さらに、本発明は、前記経路計算装置に、前記各処理を実行させることを特徴とする経路計算方法である。
さらに、本発明は、前記経路計算装置に、前記各処理を実行させるための経路計算プログラムである。
通信システムは、経路計算装置1と、データ転送装置3とがネットワークで接続されて構成される。1台の経路計算装置1は、1台以上の(図1では3台の)データ転送装置3のルーティングテーブル32を計算して、各データ転送装置3に配布する。
なお、通信システムの各装置(経路計算装置1、データ転送装置3)は、それぞれCPUと記憶手段(メモリなど)とを備えるコンピュータとして構成される。ここで、経路計算装置1とデータ転送装置3とは、同一筐体として構成してもよいし、別々の筐体として構成してもよい。
経路計算装置1のインタフェース19は、経路計算装置1内の各処理部と、経路計算装置1とは別の外部装置(データ転送装置3など)との間でデータの入出力を行う。
データ転送装置3のインタフェース39は、データ転送装置3内の各処理部と、データ転送装置3とは別の外部装置(経路計算装置1など)との間でデータの入出力を行う。
経路管理部31は、経路計算装置1から受信した自装置の経路情報を受け取り、ルーティングテーブル32として記憶手段に記憶する。
ルーティングテーブル32は、データ転送部33のデータ転送処理時に参照され、到着したパケットの宛先に到達するためのネクストホップの情報を含む(詳細は、表7で後記する)。
データ転送部33は、ルーティングテーブル32を参照して、受信したパケットを転送する。
各ノード内には、「192.168.1.0」のようなノードアドレスを表記する。なお、1つのノードは、1つ以上のネットワークデバイスに対応する。ネットワークデバイスとは、経路の分岐点となりうるデータ転送装置3という1台の装置や、データ転送装置3内の1つのインタフェース39(図1参照、IPアドレスの割り当て対象)や、データ転送装置3間を接続する1つの下位レイヤネットワーク(ネットワークケーブルなど)として構成される。つまり、トポロジ情報9におけるノードとは、経路計算アルゴリズムにおける経路が分岐する1つの構成単位に対応する。
各リンクには、そのリンクをデータ通信で利用するときのコストを併記する。このコストは、ノード間の接続関係や経路への選ばれやすさを示す指標であり、コストの数値が高いほど経路として選ばれにくいように、経路計算される。
なお、ノード情報は、ノードごとの識別情報としてのノードアドレスと、そのノードから1回のリンクで辿ることができる隣接ノードのノードアドレスと、その隣接ノードへのリンクのリンクコストとを対応づけて構成する。
例えば、1行目のノードは、自身に割り当てられているノードアドレスが「192.168.1.0」であり、1つめの隣接ノードとしてリンクコスト「1」で到達する隣接ノード「192.168.2.0」と、2つめの隣接ノードとしてリンクコスト「3」で到達する隣接ノード「192.168.3.0」と、それぞれ接続されている。
しかし、ノードアドレスが取りうる値であるアドレス空間は、ノードアドレスとしてIPv4アドレスを使用するときには32ビット長(「0.0.0.0」から「255.255.255.255」まで)であるので、2の32乗通り≒約43億と非常に大きな範囲になってしまう。
よって、ノードアドレスをノードの識別情報として用いると、そのノードアドレスの検索処理は、その検索対象の空間が非常に広大であることにより、CPU使用率および使用メモリ効率の両面から、非効率な検索処理となってしまう。
ノードIDは、ノードアドレスと1:1対応であるため、ノードの識別情報として作用する。さらに、ノードIDには、整数連番値などの効率的な値(割り当てられた値の分布の密度が高く、連続する割り当てられた値どうしの間隔が狭い値)が割り当てられるので、効率的なノードアクセス処理を実現することができる。
そして、ノードIDを割り当てるノードの数の上限値が、利用可能なメモリ空間値(物理メモリでもよいし、仮想メモリでもよい)を超えないようにノードIDを発行することにより、メモリを節約することができる。
経路計算装置1は、経路計算装置1の記憶手段に格納される各データ構造(ノード情報管理テーブル11、アドレスID索引データ12、IDアドレス索引データ13、ID発行管理データ14)と、経路計算装置1の記憶手段から読み出されるプログラムがCPUによって実行されることで構成される各処理部(ノードID処理部21、ノード情報処理部22、アドレスID変換部23、経路計算部24、IDアドレス変換部25、結果出力部26)とを有する。
手法1(表の第2列)は、整数連番値になるように割り当てる方法である。これは1から順番に空いている番号を割り当てていく方法である。ノードIDを1、2、3、…と割り当てていく。
手法2(表の第3列)は、定数倍(例えば2倍)すると整数連番値になる値である。0.5、1、1.5、…と番号を割り当てていく。この番号は2倍すると1、2、3、…となり整数連番値になる。
手法3(表の第4列)は、整数連番値ではあるが、一部の値が飛んでいるような割り当て方である。1、2、3、…と連番で並んでいるが、4がとんで5からまた連番値になるよう割り当てられる方法である。
そこで、トポロジの変更箇所(追加箇所、削除箇所)のみを対象として、ノードIDの変更処理を行うという方法がある。この方法を行うには、ノードIDの割り当てを記録し、トポロジ変更が生じるとトポロジの差分情報をチェックする。ノードが追加されたときには、空き番号となっている番号をノードIDとして割り当てる。そして、ノードが削除されたときには割り当てられていたノードIDを削除する。
ノード情報管理テーブル11は、ノードIDと、そのノードIDが示すノード情報(またはそのノード情報の格納先へのポインタ)とを対応づけるテーブルである。以下、ノード情報管理テーブル11の構成例として、2つの例を説明する。
ノード情報管理テーブル11の左列のノードIDは、検索キーとなる要素であり、ノード情報管理テーブル11を配列としたときの添え字(引数)となる。なお、表2では、ノードIDとして1から始まる整数連番値を用いているが、ノードIDとして任意の数字や文字列を用いてもよい。そのときには、配列の添え字には整数値以外の数字や文字列が代入されるので、ノード情報管理テーブル11の配列は、それらの添え字を許容する連想配列として構成される。
ノード情報管理テーブル11の右列のノード情報は、対応する左列で示されるノードIDのノード情報である。表2では、ノード情報として、隣接ノードIDと、その隣接ノードへのリンクコストとの組が、隣接ノードごとに記憶されている。
例えば、表3に示すノード情報管理テーブル11は、計算式「(メモリアドレス)=1000+(ノードID−1)×5」によって、ノードIDの値に応じたメモリアドレスを取得することができる。なお、1000とは、ノード情報を格納するメモリ空間(表3の下部)の先頭位置である。
アドレスID変換部23は、IPアドレス「192.168.1.0」が検索キーとして入力されると、アドレスID索引データ12の1行目のレコードを参照して、対応するノードID「1」を得る。同様に、アドレスID変換部23は、IPアドレス「192.168.3.0」が検索キーとして入力されると、アドレスID索引データ12の3行目のレコードを参照して、対応するノードID「3」を得る。
10進化の計算方法であるが、ノードアドレス「a.b.c.d」に対し、「a*256^3+b*256^2+c*256^1+d」という計算(演算子「*」は乗算、演算子「^」はべき乗を示す)を行った結果がノードアドレス「a.b.c.d」を10進化した値である。
このように、IPアドレスを10進数の情報キーとして表記することにより、アドレスID索引データ12を連想配列ではなく通常の配列(添え字が整数値である配列)として実現できるうえに、IPアドレス同士の大小比較が可能となる。
ここで、所定のノードの情報キーと、その所定のノードの子ノードの情報キーとの関係について、「(所定のノードの左側のリンクから辿る子ノードの情報キー)<(所定のノードの情報キー)<(所定のノードの右側のリンクから辿る子ノードの情報キー)」という大小関係を有する。
手順(1):検索キー「3232236288」が、ルートノードの情報キー「3232236544」と一致せず、かつ、それより小さいので、左側のリンクを辿り、ルートノードの子ノードへと進む(図ではリンクを辿るところは、実線の矢印で表記し、辿らないところは、点線の矢印で表記した)。
手順(2):検索キー「3232236288」が、子ノードの情報キー「3232236032」と一致せず、かつ、それより大きいので、右側のリンクを辿り、ルートノードの孫ノードへと進む。
手順(3):検索キー「3232236288」が、孫ノードの情報キー「3232236288」と一致するので、ここで検索を完了する。
手順(1):検索キー「3232236288」のハッシュ値「288」に該当する検索結果として、リストの先頭要素である情報キー「3729340288」のエントリを得る。しかし、このエントリの情報キーは、検索キー「3232236288」と一致しないので、リストの次の要素へと進む。
手順(2):ハッシュ値「288」に該当するリストの2番目の要素として、情報キー「1029383288」のエントリを得る。しかし、このエントリの情報キーは、検索キー「3232236288」と一致しないので、リストの次の要素へと進む。
手順(3):ハッシュ値「288」に該当するリストの3番目の要素として、情報キー「3232236288」のエントリを得る。このエントリの情報キーは、検索キー「3232236288」と一致するので、ここで検索を完了する。
図6(b)は、経路計算部24による経路の計算結果の一例として、ノードID=1のノードを起点として、他の各ノードへの経路情報を示す。
さらに、経路計算部24によるノード情報の検索動作が多いほど、計算時間は短縮される。検索動作が多くなる状況として、複数のデータ転送装置3の経路情報を一台で計算する場合がある。経路計算が終了すると、ノード間の経路情報が得られる。なお、経路計算部24による経路計算アルゴリズムは、例えば、ダイクストラアルゴリズムを用いることができる。
これにより、データ転送装置3は、従来のデータ転送処理と同様に、ノードアドレスを元にしたフォワーディングが実行できるので、既に多くの台数が設置および稼動しているデータ転送装置3への変更や停止を行わずに済む。
例えば、IDアドレス索引データ13を参照すると、ノードID「1」のノードアドレスは「192.168.1.0」であり、ノードID「2」のノードアドレスは「192.168.2.0」であり、ノードID「3」のノードアドレスは「192.168.3.0」であることが、それぞれ取得できる。このように変換した経路情報をデータ転送装置3における次の転送先の設定に使用する。
そして、図3の結果出力部26は、表7に示すようなルーティングテーブル32を、経路計算結果として各データ転送装置3に出力する。これにより、データ転送装置3は、ノードIDが経路計算に用いられていることを全く意識せず、従来と同じようにパケットのデータ転送を実行することができる。
従来では、ノードの識別情報としてIPアドレスを使用するため、検索空間が非常に広範囲となってしまい、確保すべきメモリ領域が膨大なものとなるという問題があった。
これに対し、本実施形態では、経路計算部24の経路計算の前処理として、アドレスID変換部23がノードの識別情報をIPアドレスからノードIDに変換し、経路計算の後処理として、IDアドレス変換部25がノードの識別情報をノードIDからIPアドレスに変換する。これにより、経路計算部24は、経路計算に伴うノード情報のアクセス処理において、検索空間が狭いノードIDの検索空間だけを検索すればよいため、確保すべきメモリ領域を大幅に節約することができる。
よって、表8に示すように、アドレスID索引データ12、IDアドレス索引データ13などの各データ構造を、IPv4アドレスからIPアドレスとそのマスク長との組の情報へと置き換えることで、経路計算部24による任意の経路情報の計算処理に、ノードIDを用いることができる。
3 データ転送装置
11 ノード情報管理テーブル
12 アドレスID索引データ
13 IDアドレス索引データ
14 ID発行管理データ
21 ノードID処理部
22 ノード情報処理部
23 アドレスID変換部
24 経路計算部
25 IDアドレス変換部
26 結果出力部
31 経路管理部
32 ルーティングテーブル
33 データ転送部
Claims (9)
- ノードアドレスで識別されるノードがリンクで接続されるトポロジ情報から、ノードごとに経路計算を行う経路計算装置であって、
前記経路計算装置は、アドレスID索引データおよびIDアドレス索引データを記憶する記憶手段と、ノードID処理部と、アドレスID変換部と、経路計算部と、IDアドレス変換部とを有し、
前記ノードID処理部は、前記トポロジ情報のノードアドレスごとに、ノードの識別情報としてのノードIDをノードアドレスと1:1対応するように発行し、その発行した結果を、ノードIDからノードアドレスを検索するための前記IDアドレス索引データと、ノードアドレスからノードIDを検索するための前記アドレスID索引データとにそれぞれ格納し、
前記アドレスID変換部は、前記トポロジ情報のノードごとに、そのノードに関する経路計算に使用される情報のうちのノードアドレスを、前記アドレスID索引データを参照して前記ノードID処理部が発行したノードIDへと変換し、
前記経路計算部は、前記アドレスID変換部が変換した前記トポロジ情報をもとに、変換したノードIDをノードの識別情報として前記トポロジ情報の経路を計算し、
前記IDアドレス変換部は、前記経路計算部の計算結果を読み取り、その計算結果に含まれる各ノードIDについて、前記IDアドレス索引データを参照してノードアドレスへと変換することで、ルーティングテーブルを作成することを特徴とする
経路計算装置。 - 前記経路計算装置は、さらに、ノード情報処理部を有し、
前記ノード情報処理部は、前記ノードID処理部が既に発行したノードIDについて、その発行後に前記トポロジ情報の変更が通知されたときには、発行されたノードIDのうちの前記トポロジ情報の変更差分に該当するノードIDを差分更新することを特徴とする
請求項1に記載の経路計算装置。 - 前記ノードID処理部は、ノードIDを発行するときに、そのノードIDと、そのノードに関する経路計算に使用される情報の格納先となるメモリアドレスとを対応づけて前記記憶手段に記憶し、
前記経路計算部は、前記ノードID処理部が対応づけたデータを参照して、ノードIDから、そのノードに関する経路計算に使用される情報を取得することを特徴とする
請求項1または請求項2に記載の経路計算装置。 - 前記経路計算装置は、ノードIDを引数とする所定関数の出力値であるメモリアドレスに、ノードに関する経路計算に使用される情報をノードごとに前記記憶手段に記憶することを特徴とする
請求項1または請求項2に記載の経路計算装置。 - ノードアドレスで識別されるノードがリンクで接続されるトポロジ情報から、ノードごとに経路計算を行う経路計算装置による経路計算方法であって、
前記経路計算装置は、アドレスID索引データおよびIDアドレス索引データを記憶する記憶手段と、ノードID処理部と、アドレスID変換部と、経路計算部と、IDアドレス変換部とを有し、
前記ノードID処理部は、前記トポロジ情報のノードアドレスごとに、ノードの識別情報としてのノードIDをノードアドレスと1:1対応するように発行し、その発行した結果を、ノードIDからノードアドレスを検索するための前記IDアドレス索引データと、ノードアドレスからノードIDを検索するための前記アドレスID索引データとにそれぞれ格納し、
前記アドレスID変換部は、前記トポロジ情報のノードごとに、そのノードに関する経路計算に使用される情報のうちのノードアドレスを、前記アドレスID索引データを参照して前記ノードID処理部が発行したノードIDへと変換し、
前記経路計算部は、前記アドレスID変換部が変換した前記トポロジ情報をもとに、変換したノードIDをノードの識別情報として前記トポロジ情報の経路を計算し、
前記IDアドレス変換部は、前記経路計算部の計算結果を読み取り、その計算結果に含まれる各ノードIDについて、前記IDアドレス索引データを参照してノードアドレスへと変換することで、ルーティングテーブルを作成することを特徴とする
経路計算方法。 - 前記経路計算装置は、さらに、ノード情報処理部を有し、
前記ノード情報処理部は、前記ノードID処理部が既に発行したノードIDについて、その発行後に前記トポロジ情報の変更が通知されたときには、発行されたノードIDのうちの前記トポロジ情報の変更差分に該当するノードIDを差分更新することを特徴とする
請求項5に記載の経路計算方法。 - 前記ノードID処理部は、ノードIDを発行するときに、そのノードIDと、そのノードに関する経路計算に使用される情報の格納先となるメモリアドレスとを対応づけて前記記憶手段に記憶し、
前記経路計算部は、前記ノードID処理部が対応づけたデータを参照して、ノードIDから、そのノードに関する経路計算に使用される情報を取得することを特徴とする
請求項5または請求項6に記載の経路計算方法。 - 前記経路計算装置は、ノードIDを引数とする所定関数の出力値であるメモリアドレスに、ノードに関する経路計算に使用される情報をノードごとに前記記憶手段に記憶することを特徴とする
請求項5または請求項6に記載の経路計算方法。 - 請求項5ないし請求項8のいずれか1項に記載の経路計算方法を、コンピュータである前記経路計算装置に実行させるための経路計算プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009258484A JP5087062B2 (ja) | 2009-11-12 | 2009-11-12 | 経路計算装置、経路計算方法、および、経路計算プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009258484A JP5087062B2 (ja) | 2009-11-12 | 2009-11-12 | 経路計算装置、経路計算方法、および、経路計算プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011103613A JP2011103613A (ja) | 2011-05-26 |
JP5087062B2 true JP5087062B2 (ja) | 2012-11-28 |
Family
ID=44193752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009258484A Expired - Fee Related JP5087062B2 (ja) | 2009-11-12 | 2009-11-12 | 経路計算装置、経路計算方法、および、経路計算プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5087062B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110867906A (zh) * | 2019-12-02 | 2020-03-06 | 南京工程学院 | 一种基于功率平衡指标的电网拓扑关系辨识方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6155861B2 (ja) * | 2013-06-06 | 2017-07-05 | 富士通株式会社 | データ管理方法、データ管理プログラム、データ管理システム及びデータ管理装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4289098B2 (ja) * | 2003-09-24 | 2009-07-01 | 日本電気株式会社 | 経路設計サーバ |
JP4533354B2 (ja) * | 2006-08-28 | 2010-09-01 | 日本電信電話株式会社 | 経路計算方法、経路計算プログラムおよび経路計算装置 |
JP5029373B2 (ja) * | 2008-01-11 | 2012-09-19 | 日本電気株式会社 | ノード、経路制御方法および経路制御プログラム |
JP4627324B2 (ja) * | 2008-02-12 | 2011-02-09 | 日本電信電話株式会社 | マルチキャスト経路特定方法 |
-
2009
- 2009-11-12 JP JP2009258484A patent/JP5087062B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110867906A (zh) * | 2019-12-02 | 2020-03-06 | 南京工程学院 | 一种基于功率平衡指标的电网拓扑关系辨识方法 |
CN110867906B (zh) * | 2019-12-02 | 2021-11-02 | 南京工程学院 | 一种基于功率平衡指标的电网拓扑关系辨识方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2011103613A (ja) | 2011-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4734539B2 (ja) | ネットワークに含まれるノード間の最短経路を探索するためのシステムおよび方法 | |
US10164884B2 (en) | Search apparatus, search configuration method, and search method | |
US8305934B2 (en) | Computer program, apparatus, and method for managing network | |
Le et al. | Scalable tree-based architectures for IPv4/v6 lookup using prefix partitioning | |
JP3813136B2 (ja) | 通信制御装置、通信制御方法、通信制御プログラム、通信制御用データ構造 | |
JP3570323B2 (ja) | アドレスに関するプレフィクスの格納方法 | |
TWI638554B (zh) | 用於網路交換機中的可擴展且靈活的表格搜索的裝置和方法 | |
CN103270727B (zh) | 存储体感知多位特里结构 | |
JP2016170526A (ja) | 検索装置、検索方法、プログラム、及び記録媒体 | |
JP4874225B2 (ja) | 管理計算機、冗長化設定方法、冗長化設定プログラム及びスイッチの設定方法 | |
JP6951846B2 (ja) | 計算機システム及びタスクの割当方法 | |
CN101562574A (zh) | 一种路由表的更新方法及装置 | |
JP5087062B2 (ja) | 経路計算装置、経路計算方法、および、経路計算プログラム | |
US7633886B2 (en) | System and methods for packet filtering | |
CN116822422A (zh) | 数字逻辑电路的分析优化方法及相关设备 | |
Risso et al. | Metaheuristic approaches for IP/MPLS network design | |
JP7436712B2 (ja) | パケットマッチング方法、装置、ネットワークデバイスおよび媒体 | |
KR101800320B1 (ko) | 버스 프로토콜 기반의 네트워크 온 칩 시스템, 그 설계 방법 및 그 설계 방법에 관한 프로그램이 기록된 컴퓨터 판독가능 기록매체 | |
US9396286B2 (en) | Lookup with key sequence skip for radix trees | |
JP5182146B2 (ja) | 経路決定プログラム、管理装置及びネットワーク・システム | |
JP6246885B1 (ja) | 経路解析処理装置および経路解析処理プログラム | |
Erdem et al. | Array design for trie-based ip lookup | |
KR100686732B1 (ko) | 복수의 프리픽스로부터 데이터 패킷을 라우팅하기 위한데이터베이스 생성방법과 라우팅 방법 및 그 방법을이용한 라우터 | |
JP5636078B1 (ja) | 仮想ネットワークの物理ネットワークへの配置装置及び方法 | |
US20160218959A1 (en) | Method for managing domain routing table in router on network structure based on hierarchical domain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110407 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110407 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20110822 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120525 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120904 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120907 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5087062 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150914 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |