bgp_open.h
上传用户:xiaozhuqw
上传日期:2009-11-15
资源大小:1338k
文件大小:3k
源码类别:

网络

开发平台:

Unix_Linux

  1. /* BGP open message handling
  2.    Copyright (C) 1999 Kunihiro Ishiguro
  3. This file is part of GNU Zebra.
  4. GNU Zebra is free software; you can redistribute it and/or modify it
  5. under the terms of the GNU General Public License as published by the
  6. Free Software Foundation; either version 2, or (at your option) any
  7. later version.
  8. GNU Zebra is distributed in the hope that it will be useful, but
  9. WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  11. General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with GNU Zebra; see the file COPYING.  If not, write to the Free
  14. Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  15. 02111-1307, USA.  */
  16. /* MP Capability information. */
  17. struct capability_mp
  18. {
  19.   u_int16_t afi;
  20.   u_char reserved;
  21.   u_char safi;
  22. };
  23. /* BGP open message capability. */
  24. struct capability
  25. {
  26.   u_char code;
  27.   u_char length;
  28.   struct capability_mp mpc;
  29. };
  30. struct graceful_restart_af
  31. {
  32.   u_int16_t afi;
  33.   u_char safi;
  34.   u_char flag;
  35. };
  36. /* Capability Code */
  37. #define CAPABILITY_CODE_MP              1 /* Multiprotocol Extensions */
  38. #define CAPABILITY_CODE_REFRESH         2 /* Route Refresh Capability */
  39. #define CAPABILITY_CODE_ORF             3 /* Cooperative Route Filtering Capability */
  40. #define CAPABILITY_CODE_RESTART        64 /* Graceful Restart Capability */
  41. #define CAPABILITY_CODE_4BYTE_AS       65 /* 4-octet AS number Capability */
  42. #define CAPABILITY_CODE_DYNAMIC        66 /* Dynamic Capability */
  43. #define CAPABILITY_CODE_REFRESH_OLD   128 /* Route Refresh Capability(cisco) */
  44. #define CAPABILITY_CODE_ORF_OLD       130 /* Cooperative Route Filtering Capability(cisco) */
  45. /* Capability Length */
  46. #define CAPABILITY_CODE_MP_LEN          4
  47. #define CAPABILITY_CODE_REFRESH_LEN     0
  48. #define CAPABILITY_CODE_DYNAMIC_LEN     0
  49. #define CAPABILITY_CODE_RESTART_LEN     2 /* Receiving only case */
  50. /* Cooperative Route Filtering Capability.  */
  51. /* ORF Type */
  52. #define ORF_TYPE_PREFIX                64 
  53. #define ORF_TYPE_PREFIX_OLD           128
  54. /* ORF Mode */
  55. #define ORF_MODE_RECEIVE                1 
  56. #define ORF_MODE_SEND                   2 
  57. #define ORF_MODE_BOTH                   3 
  58. /* Dynamic capability */
  59. /* Capability Message Action.  */
  60. #define CAPABILITY_ACTION_SET           0
  61. #define CAPABILITY_ACTION_UNSET         1
  62. /* Graceful Restart */
  63. #define RESTART_R_BIT              0x8000
  64. #define RESTART_F_BIT              0x80
  65. int bgp_open_option_parse (struct peer *, u_char, int *);
  66. void bgp_open_capability (struct stream *, struct peer *);
  67. void bgp_capability_vty_out (struct vty *, struct peer *);