/opensource.apple.com/source/network_cmds/network_cmds-245.12/netstat.tproj/inet6.c

# · C · 1037 lines · 953 code · 45 blank · 39 comment · 22 complexity · 01844ab53b90bfd9d6895f383c18ded9 MD5 · raw file

Large files are truncated click here to view the full file

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <head>
  5. <title>inet6.c</title>
  6. <style type="text/css">
  7. .enscript-comment { font-style: italic; color: rgb(178,34,34); }
  8. .enscript-function-name { font-weight: bold; color: rgb(0,0,255); }
  9. .enscript-variable-name { font-weight: bold; color: rgb(184,134,11); }
  10. .enscript-keyword { font-weight: bold; color: rgb(160,32,240); }
  11. .enscript-reference { font-weight: bold; color: rgb(95,158,160); }
  12. .enscript-string { font-weight: bold; color: rgb(188,143,143); }
  13. .enscript-builtin { font-weight: bold; color: rgb(218,112,214); }
  14. .enscript-type { font-weight: bold; color: rgb(34,139,34); }
  15. .enscript-highlight { text-decoration: underline; color: 0; }
  16. </style>
  17. </head>
  18. <body id="top">
  19. <h1 style="margin:8px;" id="f1">inet6.c&nbsp;&nbsp;&nbsp;<span style="font-weight: normal; font-size: 0.5em;">[<a href="?txt">plain text</a>]</span></h1>
  20. <hr/>
  21. <div></div>
  22. <pre>
  23. <span class="enscript-comment">/* BSDI inet.c,v 2.3 1995/10/24 02:19:29 prb Exp */</span>
  24. <span class="enscript-comment">/*
  25. * Copyright (c) 1983, 1988, 1993
  26. * The Regents of the University of California. All rights reserved.
  27. *
  28. * Redistribution and use in source and binary forms, with or without
  29. * modification, are permitted provided that the following conditions
  30. * are met:
  31. * 1. Redistributions of source code must retain the above copyright
  32. * notice, this list of conditions and the following disclaimer.
  33. * 2. Redistributions in binary form must reproduce the above copyright
  34. * notice, this list of conditions and the following disclaimer in the
  35. * documentation and/or other materials provided with the distribution.
  36. * 3. All advertising materials mentioning features or use of this software
  37. * must display the following acknowledgement:
  38. * This product includes software developed by the University of
  39. * California, Berkeley and its contributors.
  40. * 4. Neither the name of the University nor the names of its contributors
  41. * may be used to endorse or promote products derived from this software
  42. * without specific prior written permission.
  43. *
  44. * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  45. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  46. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  47. * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  48. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  49. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  50. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  51. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  52. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  53. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  54. * SUCH DAMAGE.
  55. *
  56. * $FreeBSD: src/usr.bin/netstat/inet6.c,v 1.3.2.9 2001/08/10 09:07:09 ru Exp $
  57. */</span>
  58. #<span class="enscript-reference">ifndef</span> <span class="enscript-variable-name">lint</span>
  59. <span class="enscript-comment">/*
  60. static char sccsid[] = &quot;@(#)inet6.c 8.4 (Berkeley) 4/20/94&quot;;
  61. */</span>
  62. #<span class="enscript-reference">endif</span> <span class="enscript-comment">/* not lint */</span>
  63. #<span class="enscript-reference">ifdef</span> <span class="enscript-variable-name">INET6</span>
  64. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;sys/param.h&gt;</span>
  65. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;sys/socket.h&gt;</span>
  66. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;sys/socketvar.h&gt;</span>
  67. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;sys/ioctl.h&gt;</span>
  68. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;sys/sysctl.h&gt;</span>
  69. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;net/route.h&gt;</span>
  70. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;net/if.h&gt;</span>
  71. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;net/if_var.h&gt;</span>
  72. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;netinet/in.h&gt;</span>
  73. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;netinet/ip6.h&gt;</span>
  74. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;netinet/icmp6.h&gt;</span>
  75. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;netinet/in_systm.h&gt;</span>
  76. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;netinet6/in6_pcb.h&gt;</span>
  77. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;netinet6/in6_var.h&gt;</span>
  78. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;netinet6/ip6_var.h&gt;</span>
  79. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;netinet6/pim6_var.h&gt;</span>
  80. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;netinet6/raw_ip6.h&gt;</span>
  81. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;arpa/inet.h&gt;</span>
  82. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;netdb.h&gt;</span>
  83. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;stdio.h&gt;</span>
  84. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;string.h&gt;</span>
  85. #<span class="enscript-reference">include</span> <span class="enscript-string">&lt;unistd.h&gt;</span>
  86. #<span class="enscript-reference">include</span> <span class="enscript-string">&quot;netstat.h&quot;</span>
  87. #<span class="enscript-reference">ifdef</span> <span class="enscript-variable-name">__APPLE__</span>
  88. #<span class="enscript-reference">define</span> <span class="enscript-variable-name">__unused</span>
  89. #<span class="enscript-reference">endif</span>
  90. <span class="enscript-type">char</span> *inet6name (<span class="enscript-type">struct</span> in6_addr *);
  91. <span class="enscript-type">void</span> inet6print (<span class="enscript-type">struct</span> in6_addr *, <span class="enscript-type">int</span>, <span class="enscript-type">char</span> *, <span class="enscript-type">int</span>);
  92. <span class="enscript-type">static</span> <span class="enscript-type">char</span> ntop_buf[INET6_ADDRSTRLEN];
  93. <span class="enscript-type">static</span> <span class="enscript-type">char</span> *ip6nh[] = {
  94. <span class="enscript-string">&quot;hop by hop&quot;</span>,
  95. <span class="enscript-string">&quot;ICMP&quot;</span>,
  96. <span class="enscript-string">&quot;IGMP&quot;</span>,
  97. <span class="enscript-string">&quot;#3&quot;</span>,
  98. <span class="enscript-string">&quot;IP&quot;</span>,
  99. <span class="enscript-string">&quot;#5&quot;</span>,
  100. <span class="enscript-string">&quot;TCP&quot;</span>,
  101. <span class="enscript-string">&quot;#7&quot;</span>,
  102. <span class="enscript-string">&quot;#8&quot;</span>,
  103. <span class="enscript-string">&quot;#9&quot;</span>,
  104. <span class="enscript-string">&quot;#10&quot;</span>,
  105. <span class="enscript-string">&quot;#11&quot;</span>,
  106. <span class="enscript-string">&quot;#12&quot;</span>,
  107. <span class="enscript-string">&quot;#13&quot;</span>,
  108. <span class="enscript-string">&quot;#14&quot;</span>,
  109. <span class="enscript-string">&quot;#15&quot;</span>,
  110. <span class="enscript-string">&quot;#16&quot;</span>,
  111. <span class="enscript-string">&quot;UDP&quot;</span>,
  112. <span class="enscript-string">&quot;#18&quot;</span>,
  113. <span class="enscript-string">&quot;#19&quot;</span>,
  114. <span class="enscript-string">&quot;#20&quot;</span>,
  115. <span class="enscript-string">&quot;#21&quot;</span>,
  116. <span class="enscript-string">&quot;IDP&quot;</span>,
  117. <span class="enscript-string">&quot;#23&quot;</span>,
  118. <span class="enscript-string">&quot;#24&quot;</span>,
  119. <span class="enscript-string">&quot;#25&quot;</span>,
  120. <span class="enscript-string">&quot;#26&quot;</span>,
  121. <span class="enscript-string">&quot;#27&quot;</span>,
  122. <span class="enscript-string">&quot;#28&quot;</span>,
  123. <span class="enscript-string">&quot;TP&quot;</span>,
  124. <span class="enscript-string">&quot;#30&quot;</span>,
  125. <span class="enscript-string">&quot;#31&quot;</span>,
  126. <span class="enscript-string">&quot;#32&quot;</span>,
  127. <span class="enscript-string">&quot;#33&quot;</span>,
  128. <span class="enscript-string">&quot;#34&quot;</span>,
  129. <span class="enscript-string">&quot;#35&quot;</span>,
  130. <span class="enscript-string">&quot;#36&quot;</span>,
  131. <span class="enscript-string">&quot;#37&quot;</span>,
  132. <span class="enscript-string">&quot;#38&quot;</span>,
  133. <span class="enscript-string">&quot;#39&quot;</span>,
  134. <span class="enscript-string">&quot;#40&quot;</span>,
  135. <span class="enscript-string">&quot;IP6&quot;</span>,
  136. <span class="enscript-string">&quot;#42&quot;</span>,
  137. <span class="enscript-string">&quot;routing&quot;</span>,
  138. <span class="enscript-string">&quot;fragment&quot;</span>,
  139. <span class="enscript-string">&quot;#45&quot;</span>,
  140. <span class="enscript-string">&quot;#46&quot;</span>,
  141. <span class="enscript-string">&quot;#47&quot;</span>,
  142. <span class="enscript-string">&quot;#48&quot;</span>,
  143. <span class="enscript-string">&quot;#49&quot;</span>,
  144. <span class="enscript-string">&quot;ESP&quot;</span>,
  145. <span class="enscript-string">&quot;AH&quot;</span>,
  146. <span class="enscript-string">&quot;#52&quot;</span>,
  147. <span class="enscript-string">&quot;#53&quot;</span>,
  148. <span class="enscript-string">&quot;#54&quot;</span>,
  149. <span class="enscript-string">&quot;#55&quot;</span>,
  150. <span class="enscript-string">&quot;#56&quot;</span>,
  151. <span class="enscript-string">&quot;#57&quot;</span>,
  152. <span class="enscript-string">&quot;ICMP6&quot;</span>,
  153. <span class="enscript-string">&quot;no next header&quot;</span>,
  154. <span class="enscript-string">&quot;destination option&quot;</span>,
  155. <span class="enscript-string">&quot;#61&quot;</span>,
  156. <span class="enscript-string">&quot;#62&quot;</span>,
  157. <span class="enscript-string">&quot;#63&quot;</span>,
  158. <span class="enscript-string">&quot;#64&quot;</span>,
  159. <span class="enscript-string">&quot;#65&quot;</span>,
  160. <span class="enscript-string">&quot;#66&quot;</span>,
  161. <span class="enscript-string">&quot;#67&quot;</span>,
  162. <span class="enscript-string">&quot;#68&quot;</span>,
  163. <span class="enscript-string">&quot;#69&quot;</span>,
  164. <span class="enscript-string">&quot;#70&quot;</span>,
  165. <span class="enscript-string">&quot;#71&quot;</span>,
  166. <span class="enscript-string">&quot;#72&quot;</span>,
  167. <span class="enscript-string">&quot;#73&quot;</span>,
  168. <span class="enscript-string">&quot;#74&quot;</span>,
  169. <span class="enscript-string">&quot;#75&quot;</span>,
  170. <span class="enscript-string">&quot;#76&quot;</span>,
  171. <span class="enscript-string">&quot;#77&quot;</span>,
  172. <span class="enscript-string">&quot;#78&quot;</span>,
  173. <span class="enscript-string">&quot;#79&quot;</span>,
  174. <span class="enscript-string">&quot;ISOIP&quot;</span>,
  175. <span class="enscript-string">&quot;#81&quot;</span>,
  176. <span class="enscript-string">&quot;#82&quot;</span>,
  177. <span class="enscript-string">&quot;#83&quot;</span>,
  178. <span class="enscript-string">&quot;#84&quot;</span>,
  179. <span class="enscript-string">&quot;#85&quot;</span>,
  180. <span class="enscript-string">&quot;#86&quot;</span>,
  181. <span class="enscript-string">&quot;#87&quot;</span>,
  182. <span class="enscript-string">&quot;#88&quot;</span>,
  183. <span class="enscript-string">&quot;OSPF&quot;</span>,
  184. <span class="enscript-string">&quot;#80&quot;</span>,
  185. <span class="enscript-string">&quot;#91&quot;</span>,
  186. <span class="enscript-string">&quot;#92&quot;</span>,
  187. <span class="enscript-string">&quot;#93&quot;</span>,
  188. <span class="enscript-string">&quot;#94&quot;</span>,
  189. <span class="enscript-string">&quot;#95&quot;</span>,
  190. <span class="enscript-string">&quot;#96&quot;</span>,
  191. <span class="enscript-string">&quot;Ethernet&quot;</span>,
  192. <span class="enscript-string">&quot;#98&quot;</span>,
  193. <span class="enscript-string">&quot;#99&quot;</span>,
  194. <span class="enscript-string">&quot;#100&quot;</span>,
  195. <span class="enscript-string">&quot;#101&quot;</span>,
  196. <span class="enscript-string">&quot;#102&quot;</span>,
  197. <span class="enscript-string">&quot;PIM&quot;</span>,
  198. <span class="enscript-string">&quot;#104&quot;</span>,
  199. <span class="enscript-string">&quot;#105&quot;</span>,
  200. <span class="enscript-string">&quot;#106&quot;</span>,
  201. <span class="enscript-string">&quot;#107&quot;</span>,
  202. <span class="enscript-string">&quot;#108&quot;</span>,
  203. <span class="enscript-string">&quot;#109&quot;</span>,
  204. <span class="enscript-string">&quot;#110&quot;</span>,
  205. <span class="enscript-string">&quot;#111&quot;</span>,
  206. <span class="enscript-string">&quot;#112&quot;</span>,
  207. <span class="enscript-string">&quot;#113&quot;</span>,
  208. <span class="enscript-string">&quot;#114&quot;</span>,
  209. <span class="enscript-string">&quot;#115&quot;</span>,
  210. <span class="enscript-string">&quot;#116&quot;</span>,
  211. <span class="enscript-string">&quot;#117&quot;</span>,
  212. <span class="enscript-string">&quot;#118&quot;</span>,
  213. <span class="enscript-string">&quot;#119&quot;</span>,
  214. <span class="enscript-string">&quot;#120&quot;</span>,
  215. <span class="enscript-string">&quot;#121&quot;</span>,
  216. <span class="enscript-string">&quot;#122&quot;</span>,
  217. <span class="enscript-string">&quot;#123&quot;</span>,
  218. <span class="enscript-string">&quot;#124&quot;</span>,
  219. <span class="enscript-string">&quot;#125&quot;</span>,
  220. <span class="enscript-string">&quot;#126&quot;</span>,
  221. <span class="enscript-string">&quot;#127&quot;</span>,
  222. <span class="enscript-string">&quot;#128&quot;</span>,
  223. <span class="enscript-string">&quot;#129&quot;</span>,
  224. <span class="enscript-string">&quot;#130&quot;</span>,
  225. <span class="enscript-string">&quot;#131&quot;</span>,
  226. <span class="enscript-string">&quot;#132&quot;</span>,
  227. <span class="enscript-string">&quot;#133&quot;</span>,
  228. <span class="enscript-string">&quot;#134&quot;</span>,
  229. <span class="enscript-string">&quot;#135&quot;</span>,
  230. <span class="enscript-string">&quot;#136&quot;</span>,
  231. <span class="enscript-string">&quot;#137&quot;</span>,
  232. <span class="enscript-string">&quot;#138&quot;</span>,
  233. <span class="enscript-string">&quot;#139&quot;</span>,
  234. <span class="enscript-string">&quot;#140&quot;</span>,
  235. <span class="enscript-string">&quot;#141&quot;</span>,
  236. <span class="enscript-string">&quot;#142&quot;</span>,
  237. <span class="enscript-string">&quot;#143&quot;</span>,
  238. <span class="enscript-string">&quot;#144&quot;</span>,
  239. <span class="enscript-string">&quot;#145&quot;</span>,
  240. <span class="enscript-string">&quot;#146&quot;</span>,
  241. <span class="enscript-string">&quot;#147&quot;</span>,
  242. <span class="enscript-string">&quot;#148&quot;</span>,
  243. <span class="enscript-string">&quot;#149&quot;</span>,
  244. <span class="enscript-string">&quot;#150&quot;</span>,
  245. <span class="enscript-string">&quot;#151&quot;</span>,
  246. <span class="enscript-string">&quot;#152&quot;</span>,
  247. <span class="enscript-string">&quot;#153&quot;</span>,
  248. <span class="enscript-string">&quot;#154&quot;</span>,
  249. <span class="enscript-string">&quot;#155&quot;</span>,
  250. <span class="enscript-string">&quot;#156&quot;</span>,
  251. <span class="enscript-string">&quot;#157&quot;</span>,
  252. <span class="enscript-string">&quot;#158&quot;</span>,
  253. <span class="enscript-string">&quot;#159&quot;</span>,
  254. <span class="enscript-string">&quot;#160&quot;</span>,
  255. <span class="enscript-string">&quot;#161&quot;</span>,
  256. <span class="enscript-string">&quot;#162&quot;</span>,
  257. <span class="enscript-string">&quot;#163&quot;</span>,
  258. <span class="enscript-string">&quot;#164&quot;</span>,
  259. <span class="enscript-string">&quot;#165&quot;</span>,
  260. <span class="enscript-string">&quot;#166&quot;</span>,
  261. <span class="enscript-string">&quot;#167&quot;</span>,
  262. <span class="enscript-string">&quot;#168&quot;</span>,
  263. <span class="enscript-string">&quot;#169&quot;</span>,
  264. <span class="enscript-string">&quot;#170&quot;</span>,
  265. <span class="enscript-string">&quot;#171&quot;</span>,
  266. <span class="enscript-string">&quot;#172&quot;</span>,
  267. <span class="enscript-string">&quot;#173&quot;</span>,
  268. <span class="enscript-string">&quot;#174&quot;</span>,
  269. <span class="enscript-string">&quot;#175&quot;</span>,
  270. <span class="enscript-string">&quot;#176&quot;</span>,
  271. <span class="enscript-string">&quot;#177&quot;</span>,
  272. <span class="enscript-string">&quot;#178&quot;</span>,
  273. <span class="enscript-string">&quot;#179&quot;</span>,
  274. <span class="enscript-string">&quot;#180&quot;</span>,
  275. <span class="enscript-string">&quot;#181&quot;</span>,
  276. <span class="enscript-string">&quot;#182&quot;</span>,
  277. <span class="enscript-string">&quot;#183&quot;</span>,
  278. <span class="enscript-string">&quot;#184&quot;</span>,
  279. <span class="enscript-string">&quot;#185&quot;</span>,
  280. <span class="enscript-string">&quot;#186&quot;</span>,
  281. <span class="enscript-string">&quot;#187&quot;</span>,
  282. <span class="enscript-string">&quot;#188&quot;</span>,
  283. <span class="enscript-string">&quot;#189&quot;</span>,
  284. <span class="enscript-string">&quot;#180&quot;</span>,
  285. <span class="enscript-string">&quot;#191&quot;</span>,
  286. <span class="enscript-string">&quot;#192&quot;</span>,
  287. <span class="enscript-string">&quot;#193&quot;</span>,
  288. <span class="enscript-string">&quot;#194&quot;</span>,
  289. <span class="enscript-string">&quot;#195&quot;</span>,
  290. <span class="enscript-string">&quot;#196&quot;</span>,
  291. <span class="enscript-string">&quot;#197&quot;</span>,
  292. <span class="enscript-string">&quot;#198&quot;</span>,
  293. <span class="enscript-string">&quot;#199&quot;</span>,
  294. <span class="enscript-string">&quot;#200&quot;</span>,
  295. <span class="enscript-string">&quot;#201&quot;</span>,
  296. <span class="enscript-string">&quot;#202&quot;</span>,
  297. <span class="enscript-string">&quot;#203&quot;</span>,
  298. <span class="enscript-string">&quot;#204&quot;</span>,
  299. <span class="enscript-string">&quot;#205&quot;</span>,
  300. <span class="enscript-string">&quot;#206&quot;</span>,
  301. <span class="enscript-string">&quot;#207&quot;</span>,
  302. <span class="enscript-string">&quot;#208&quot;</span>,
  303. <span class="enscript-string">&quot;#209&quot;</span>,
  304. <span class="enscript-string">&quot;#210&quot;</span>,
  305. <span class="enscript-string">&quot;#211&quot;</span>,
  306. <span class="enscript-string">&quot;#212&quot;</span>,
  307. <span class="enscript-string">&quot;#213&quot;</span>,
  308. <span class="enscript-string">&quot;#214&quot;</span>,
  309. <span class="enscript-string">&quot;#215&quot;</span>,
  310. <span class="enscript-string">&quot;#216&quot;</span>,
  311. <span class="enscript-string">&quot;#217&quot;</span>,
  312. <span class="enscript-string">&quot;#218&quot;</span>,
  313. <span class="enscript-string">&quot;#219&quot;</span>,
  314. <span class="enscript-string">&quot;#220&quot;</span>,
  315. <span class="enscript-string">&quot;#221&quot;</span>,
  316. <span class="enscript-string">&quot;#222&quot;</span>,
  317. <span class="enscript-string">&quot;#223&quot;</span>,
  318. <span class="enscript-string">&quot;#224&quot;</span>,
  319. <span class="enscript-string">&quot;#225&quot;</span>,
  320. <span class="enscript-string">&quot;#226&quot;</span>,
  321. <span class="enscript-string">&quot;#227&quot;</span>,
  322. <span class="enscript-string">&quot;#228&quot;</span>,
  323. <span class="enscript-string">&quot;#229&quot;</span>,
  324. <span class="enscript-string">&quot;#230&quot;</span>,
  325. <span class="enscript-string">&quot;#231&quot;</span>,
  326. <span class="enscript-string">&quot;#232&quot;</span>,
  327. <span class="enscript-string">&quot;#233&quot;</span>,
  328. <span class="enscript-string">&quot;#234&quot;</span>,
  329. <span class="enscript-string">&quot;#235&quot;</span>,
  330. <span class="enscript-string">&quot;#236&quot;</span>,
  331. <span class="enscript-string">&quot;#237&quot;</span>,
  332. <span class="enscript-string">&quot;#238&quot;</span>,
  333. <span class="enscript-string">&quot;#239&quot;</span>,
  334. <span class="enscript-string">&quot;#240&quot;</span>,
  335. <span class="enscript-string">&quot;#241&quot;</span>,
  336. <span class="enscript-string">&quot;#242&quot;</span>,
  337. <span class="enscript-string">&quot;#243&quot;</span>,
  338. <span class="enscript-string">&quot;#244&quot;</span>,
  339. <span class="enscript-string">&quot;#245&quot;</span>,
  340. <span class="enscript-string">&quot;#246&quot;</span>,
  341. <span class="enscript-string">&quot;#247&quot;</span>,
  342. <span class="enscript-string">&quot;#248&quot;</span>,
  343. <span class="enscript-string">&quot;#249&quot;</span>,
  344. <span class="enscript-string">&quot;#250&quot;</span>,
  345. <span class="enscript-string">&quot;#251&quot;</span>,
  346. <span class="enscript-string">&quot;#252&quot;</span>,
  347. <span class="enscript-string">&quot;#253&quot;</span>,
  348. <span class="enscript-string">&quot;#254&quot;</span>,
  349. <span class="enscript-string">&quot;#255&quot;</span>,
  350. };
  351. <span class="enscript-comment">/*
  352. * Dump IP6 statistics structure.
  353. */</span>
  354. <span class="enscript-type">void</span>
  355. <span class="enscript-function-name">ip6_stats</span>(u_long off __unused, <span class="enscript-type">char</span> *name, <span class="enscript-type">int</span> af __unused)
  356. {
  357. <span class="enscript-type">struct</span> ip6stat ip6stat;
  358. <span class="enscript-type">int</span> first, i;
  359. <span class="enscript-type">int</span> mib[4];
  360. size_t len;
  361. mib[0] = CTL_NET;
  362. mib[1] = PF_INET6;
  363. mib[2] = IPPROTO_IPV6;
  364. mib[3] = IPV6CTL_STATS;
  365. len = <span class="enscript-keyword">sizeof</span> ip6stat;
  366. memset(&amp;ip6stat, 0, len);
  367. <span class="enscript-keyword">if</span> (sysctl(mib, 4, &amp;ip6stat, &amp;len, (<span class="enscript-type">void</span> *)0, 0) &lt; 0)
  368. <span class="enscript-keyword">return</span>;
  369. printf(<span class="enscript-string">&quot;%s:\n&quot;</span>, name);
  370. #<span class="enscript-reference">define</span> <span class="enscript-function-name">p</span>(f, m) if (ip6stat.f || sflag &lt;= 1) \
  371. printf(m, (<span class="enscript-type">unsigned</span> <span class="enscript-type">long</span> <span class="enscript-type">long</span>)ip6stat.f, plural(ip6stat.f))
  372. #<span class="enscript-reference">define</span> <span class="enscript-function-name">p1a</span>(f, m) if (ip6stat.f || sflag &lt;= 1) \
  373. printf(m, (<span class="enscript-type">unsigned</span> <span class="enscript-type">long</span> <span class="enscript-type">long</span>)ip6stat.f)
  374. p(ip6s_total, <span class="enscript-string">&quot;\t%llu total packet%s received\n&quot;</span>);
  375. p1a(ip6s_toosmall, <span class="enscript-string">&quot;\t%llu with size smaller than minimum\n&quot;</span>);
  376. p1a(ip6s_tooshort, <span class="enscript-string">&quot;\t%llu with data size &lt; data length\n&quot;</span>);
  377. p1a(ip6s_badoptions, <span class="enscript-string">&quot;\t%llu with bad options\n&quot;</span>);
  378. p1a(ip6s_badvers, <span class="enscript-string">&quot;\t%llu with incorrect version number\n&quot;</span>);
  379. p(ip6s_fragments, <span class="enscript-string">&quot;\t%llu fragment%s received\n&quot;</span>);
  380. p(ip6s_fragdropped, <span class="enscript-string">&quot;\t%llu fragment%s dropped (dup or out of space)\n&quot;</span>);
  381. p(ip6s_fragtimeout, <span class="enscript-string">&quot;\t%llu fragment%s dropped after timeout\n&quot;</span>);
  382. p(ip6s_fragoverflow, <span class="enscript-string">&quot;\t%llu fragment%s that exceeded limit\n&quot;</span>);
  383. p(ip6s_reassembled, <span class="enscript-string">&quot;\t%llu packet%s reassembled ok\n&quot;</span>);
  384. p(ip6s_delivered, <span class="enscript-string">&quot;\t%llu packet%s for this host\n&quot;</span>);
  385. p(ip6s_forward, <span class="enscript-string">&quot;\t%llu packet%s forwarded\n&quot;</span>);
  386. p(ip6s_cantforward, <span class="enscript-string">&quot;\t%llu packet%s not forwardable\n&quot;</span>);
  387. p(ip6s_redirectsent, <span class="enscript-string">&quot;\t%llu redirect%s sent\n&quot;</span>);
  388. p(ip6s_localout, <span class="enscript-string">&quot;\t%llu packet%s sent from this host\n&quot;</span>);
  389. p(ip6s_rawout, <span class="enscript-string">&quot;\t%llu packet%s sent with fabricated ip header\n&quot;</span>);
  390. p(ip6s_odropped, <span class="enscript-string">&quot;\t%llu output packet%s dropped due to no bufs, etc.\n&quot;</span>);
  391. p(ip6s_noroute, <span class="enscript-string">&quot;\t%llu output packet%s discarded due to no route\n&quot;</span>);
  392. p(ip6s_fragmented, <span class="enscript-string">&quot;\t%llu output datagram%s fragmented\n&quot;</span>);
  393. p(ip6s_ofragments, <span class="enscript-string">&quot;\t%llu fragment%s created\n&quot;</span>);
  394. p(ip6s_cantfrag, <span class="enscript-string">&quot;\t%llu datagram%s that can't be fragmented\n&quot;</span>);
  395. p(ip6s_badscope, <span class="enscript-string">&quot;\t%llu packet%s that violated scope rules\n&quot;</span>);
  396. p(ip6s_notmember, <span class="enscript-string">&quot;\t%llu multicast packet%s which we don't join\n&quot;</span>);
  397. <span class="enscript-keyword">for</span> (first = 1, i = 0; i &lt; 256; i++)
  398. <span class="enscript-keyword">if</span> (ip6stat.ip6s_nxthist[i] != 0) {
  399. <span class="enscript-keyword">if</span> (first) {
  400. printf(<span class="enscript-string">&quot;\tInput histogram:\n&quot;</span>);
  401. first = 0;
  402. }
  403. printf(<span class="enscript-string">&quot;\t\t%s: %llu\n&quot;</span>, ip6nh[i],
  404. (<span class="enscript-type">unsigned</span> <span class="enscript-type">long</span> <span class="enscript-type">long</span>)ip6stat.ip6s_nxthist[i]);
  405. }
  406. printf(<span class="enscript-string">&quot;\tMbuf statistics:\n&quot;</span>);
  407. printf(<span class="enscript-string">&quot;\t\t%llu one mbuf\n&quot;</span>, (<span class="enscript-type">unsigned</span> <span class="enscript-type">long</span> <span class="enscript-type">long</span>)ip6stat.ip6s_m1);
  408. <span class="enscript-keyword">for</span> (first = 1, i = 0; i &lt; 32; i++) {
  409. <span class="enscript-type">char</span> ifbuf[IFNAMSIZ];
  410. <span class="enscript-keyword">if</span> (ip6stat.ip6s_m2m[i] != 0) {
  411. <span class="enscript-keyword">if</span> (first) {
  412. printf(<span class="enscript-string">&quot;\t\ttwo or more mbuf:\n&quot;</span>);
  413. first = 0;
  414. }
  415. printf(<span class="enscript-string">&quot;\t\t\t%s= %llu\n&quot;</span>,
  416. if_indextoname(i, ifbuf),
  417. (<span class="enscript-type">unsigned</span> <span class="enscript-type">long</span> <span class="enscript-type">long</span>)ip6stat.ip6s_m2m[i]);
  418. }
  419. }
  420. printf(<span class="enscript-string">&quot;\t\t%llu one ext mbuf\n&quot;</span>,
  421. (<span class="enscript-type">unsigned</span> <span class="enscript-type">long</span> <span class="enscript-type">long</span>)ip6stat.ip6s_mext1);
  422. printf(<span class="enscript-string">&quot;\t\t%llu two or more ext mbuf\n&quot;</span>,
  423. (<span class="enscript-type">unsigned</span> <span class="enscript-type">long</span> <span class="enscript-type">long</span>)ip6stat.ip6s_mext2m);
  424. p(ip6s_exthdrtoolong,
  425. <span class="enscript-string">&quot;\t%llu packet%s whose headers are not continuous\n&quot;</span>);
  426. p(ip6s_nogif, <span class="enscript-string">&quot;\t%llu tunneling packet%s that can't find gif\n&quot;</span>);
  427. p(ip6s_toomanyhdr,
  428. <span class="enscript-string">&quot;\t%llu packet%s discarded due to too may headers\n&quot;</span>);
  429. <span class="enscript-comment">/* for debugging source address selection */</span>
  430. #<span class="enscript-reference">define</span> <span class="enscript-function-name">PRINT_SCOPESTAT</span>(s,i) do {\
  431. <span class="enscript-keyword">switch</span>(i) { <span class="enscript-comment">/* XXX hardcoding in each case */</span>\
  432. <span class="enscript-keyword">case</span> <span class="enscript-reference">1</span>:\
  433. p(s, <span class="enscript-string">&quot;\t\t%llu node-local%s\n&quot;</span>);\
  434. <span class="enscript-keyword">break</span>;\
  435. <span class="enscript-keyword">case</span> <span class="enscript-reference">2</span>:\
  436. p(s,<span class="enscript-string">&quot;\t\t%llu link-local%s\n&quot;</span>);\
  437. <span class="enscript-keyword">break</span>;\
  438. <span class="enscript-keyword">case</span> <span class="enscript-reference">5</span>:\
  439. p(s,<span class="enscript-string">&quot;\t\t%llu site-local%s\n&quot;</span>);\
  440. <span class="enscript-keyword">break</span>;\
  441. <span class="enscript-keyword">case</span> <span class="enscript-reference">14</span>:\
  442. p(s,<span class="enscript-string">&quot;\t\t%llu global%s\n&quot;</span>);\
  443. <span class="enscript-keyword">break</span>;\
  444. <span class="enscript-reference">default</span>:\
  445. printf(<span class="enscript-string">&quot;\t\t%llu addresses scope=%x\n&quot;</span>,\
  446. (<span class="enscript-type">unsigned</span> <span class="enscript-type">long</span> <span class="enscript-type">long</span>)ip6stat.s, i);\
  447. }\
  448. } <span class="enscript-keyword">while</span> (0);
  449. p(ip6s_sources_none,
  450. <span class="enscript-string">&quot;\t%llu failure%s of source address selection\n&quot;</span>);
  451. <span class="enscript-keyword">for</span> (first = 1, i = 0; i &lt; 16; i++) {
  452. <span class="enscript-keyword">if</span> (ip6stat.ip6s_sources_sameif[i]) {
  453. <span class="enscript-keyword">if</span> (first) {
  454. printf(<span class="enscript-string">&quot;\tsource addresses on an outgoing I/F\n&quot;</span>);
  455. first = 0;
  456. }
  457. PRINT_SCOPESTAT(ip6s_sources_sameif[i], i);
  458. }
  459. }
  460. <span class="enscript-keyword">for</span> (first = 1, i = 0; i &lt; 16; i++) {
  461. <span class="enscript-keyword">if</span> (ip6stat.ip6s_sources_otherif[i]) {
  462. <span class="enscript-keyword">if</span> (first) {
  463. printf(<span class="enscript-string">&quot;\tsource addresses on a non-outgoing I/F\n&quot;</span>);
  464. first = 0;
  465. }
  466. PRINT_SCOPESTAT(ip6s_sources_otherif[i], i);
  467. }
  468. }
  469. <span class="enscript-keyword">for</span> (first = 1, i = 0; i &lt; 16; i++) {
  470. <span class="enscript-keyword">if</span> (ip6stat.ip6s_sources_samescope[i]) {
  471. <span class="enscript-keyword">if</span> (first) {
  472. printf(<span class="enscript-string">&quot;\tsource addresses of same scope\n&quot;</span>);
  473. first = 0;
  474. }
  475. PRINT_SCOPESTAT(ip6s_sources_samescope[i], i);
  476. }
  477. }
  478. <span class="enscript-keyword">for</span> (first = 1, i = 0; i &lt; 16; i++) {
  479. <span class="enscript-keyword">if</span> (ip6stat.ip6s_sources_otherscope[i]) {
  480. <span class="enscript-keyword">if</span> (first) {
  481. printf(<span class="enscript-string">&quot;\tsource addresses of a different scope\n&quot;</span>);
  482. first = 0;
  483. }
  484. PRINT_SCOPESTAT(ip6s_sources_otherscope[i], i);
  485. }
  486. }
  487. <span class="enscript-keyword">for</span> (first = 1, i = 0; i &lt; 16; i++) {
  488. <span class="enscript-keyword">if</span> (ip6stat.ip6s_sources_deprecated[i]) {
  489. <span class="enscript-keyword">if</span> (first) {
  490. printf(<span class="enscript-string">&quot;\tdeprecated source addresses\n&quot;</span>);
  491. first = 0;
  492. }
  493. PRINT_SCOPESTAT(ip6s_sources_deprecated[i], i);
  494. }
  495. }
  496. p1a(ip6s_forward_cachehit, <span class="enscript-string">&quot;\t%llu forward cache hit\n&quot;</span>);
  497. p1a(ip6s_forward_cachemiss, <span class="enscript-string">&quot;\t%llu forward cache miss\n&quot;</span>);
  498. #<span class="enscript-reference">undef</span> <span class="enscript-variable-name">p</span>
  499. #<span class="enscript-reference">undef</span> <span class="enscript-variable-name">p1a</span>
  500. }
  501. <span class="enscript-comment">/*
  502. * Dump IPv6 per-interface statistics based on RFC 2465.
  503. */</span>
  504. <span class="enscript-type">void</span>
  505. <span class="enscript-function-name">ip6_ifstats</span>(<span class="enscript-type">char</span> *ifname)
  506. {
  507. <span class="enscript-type">struct</span> in6_ifreq ifr;
  508. <span class="enscript-type">int</span> s;
  509. #<span class="enscript-reference">define</span> <span class="enscript-function-name">p</span>(f, m) if (ifr.ifr_ifru.ifru_stat.f || sflag &lt;= 1) \
  510. printf(m, (<span class="enscript-type">unsigned</span> <span class="enscript-type">long</span> <span class="enscript-type">long</span>)ifr.ifr_ifru.ifru_stat.f, plural(ifr.ifr_ifru.ifru_stat.f))
  511. #<span class="enscript-reference">define</span> <span class="enscript-function-name">p_5</span>(f, m) if (ifr.ifr_ifru.ifru_stat.f || sflag &lt;= 1) \
  512. printf(m, (<span class="enscript-type">unsigned</span> <span class="enscript-type">long</span> <span class="enscript-type">long</span>)ip6stat.f)
  513. <span class="enscript-keyword">if</span> ((s = socket(AF_INET6, SOCK_DGRAM, 0)) &lt; 0) {
  514. perror(<span class="enscript-string">&quot;Warning: socket(AF_INET6)&quot;</span>);
  515. <span class="enscript-keyword">return</span>;
  516. }
  517. strcpy(ifr.ifr_name, ifname);
  518. printf(<span class="enscript-string">&quot;ip6 on %s:\n&quot;</span>, ifr.ifr_name);
  519. <span class="enscript-keyword">if</span> (ioctl(s, SIOCGIFSTAT_IN6, (<span class="enscript-type">char</span> *)&amp;ifr) &lt; 0) {
  520. perror(<span class="enscript-string">&quot;Warning: ioctl(SIOCGIFSTAT_IN6)&quot;</span>);
  521. <span class="enscript-keyword">goto</span> <span class="enscript-reference">end</span>;
  522. }
  523. p(ifs6_in_receive, <span class="enscript-string">&quot;\t%llu total input datagram%s\n&quot;</span>);
  524. p(ifs6_in_hdrerr, <span class="enscript-string">&quot;\t%llu datagram%s with invalid header received\n&quot;</span>);
  525. p(ifs6_in_toobig, <span class="enscript-string">&quot;\t%llu datagram%s exceeded MTU received\n&quot;</span>);
  526. p(ifs6_in_noroute, <span class="enscript-string">&quot;\t%llu datagram%s with no route received\n&quot;</span>);
  527. p(ifs6_in_addrerr, <span class="enscript-string">&quot;\t%llu datagram%s with invalid dst received\n&quot;</span>);
  528. p(ifs6_in_protounknown, <span class="enscript-string">&quot;\t%llu datagram%s with unknown proto received\n&quot;</span>);
  529. p(ifs6_in_truncated, <span class="enscript-string">&quot;\t%llu truncated datagram%s received\n&quot;</span>);
  530. p(ifs6_in_discard, <span class="enscript-string">&quot;\t%llu input datagram%s discarded\n&quot;</span>);
  531. p(ifs6_in_deliver,
  532. <span class="enscript-string">&quot;\t%llu datagram%s delivered to an upper layer protocol\n&quot;</span>);
  533. p(ifs6_out_forward, <span class="enscript-string">&quot;\t%llu datagram%s forwarded to this interface\n&quot;</span>);
  534. p(ifs6_out_request,
  535. <span class="enscript-string">&quot;\t%llu datagram%s sent from an upper layer protocol\n&quot;</span>);
  536. p(ifs6_out_discard, <span class="enscript-string">&quot;\t%llu total discarded output datagram%s\n&quot;</span>);
  537. p(ifs6_out_fragok, <span class="enscript-string">&quot;\t%llu output datagram%s fragmented\n&quot;</span>);
  538. p(ifs6_out_fragfail, <span class="enscript-string">&quot;\t%llu output datagram%s failed on fragment\n&quot;</span>);
  539. p(ifs6_out_fragcreat, <span class="enscript-string">&quot;\t%llu output datagram%s succeeded on fragment\n&quot;</span>);
  540. p(ifs6_reass_reqd, <span class="enscript-string">&quot;\t%llu incoming datagram%s fragmented\n&quot;</span>);
  541. p(ifs6_reass_ok, <span class="enscript-string">&quot;\t%llu datagram%s reassembled\n&quot;</span>);
  542. p(ifs6_reass_fail, <span class="enscript-string">&quot;\t%llu datagram%s failed on reassembling\n&quot;</span>);
  543. p(ifs6_in_mcast, <span class="enscript-string">&quot;\t%llu multicast datagram%s received\n&quot;</span>);
  544. p(ifs6_out_mcast, <span class="enscript-string">&quot;\t%llu multicast datagram%s sent\n&quot;</span>);
  545. <span class="enscript-reference">end</span>:
  546. close(s);
  547. #<span class="enscript-reference">undef</span> <span class="enscript-variable-name">p</span>
  548. #<span class="enscript-reference">undef</span> <span class="enscript-variable-name">p_5</span>
  549. }
  550. <span class="enscript-type">static</span> <span class="enscript-type">char</span> *icmp6names[] = {
  551. <span class="enscript-string">&quot;#0&quot;</span>,
  552. <span class="enscript-string">&quot;unreach&quot;</span>,
  553. <span class="enscript-string">&quot;packet too big&quot;</span>,
  554. <span class="enscript-string">&quot;time exceed&quot;</span>,
  555. <span class="enscript-string">&quot;parameter problem&quot;</span>,
  556. <span class="enscript-string">&quot;#5&quot;</span>,
  557. <span class="enscript-string">&quot;#6&quot;</span>,
  558. <span class="enscript-string">&quot;#7&quot;</span>,
  559. <span class="enscript-string">&quot;#8&quot;</span>,
  560. <span class="enscript-string">&quot;#9&quot;</span>,
  561. <span class="enscript-string">&quot;#10&quot;</span>,
  562. <span class="enscript-string">&quot;#11&quot;</span>,
  563. <span class="enscript-string">&quot;#12&quot;</span>,
  564. <span class="enscript-string">&quot;#13&quot;</span>,
  565. <span class="enscript-string">&quot;#14&quot;</span>,
  566. <span class="enscript-string">&quot;#15&quot;</span>,
  567. <span class="enscript-string">&quot;#16&quot;</span>,
  568. <span class="enscript-string">&quot;#17&quot;</span>,
  569. <span class="enscript-string">&quot;#18&quot;</span>,
  570. <span class="enscript-string">&quot;#19&quot;</span>,
  571. <span class="enscript-string">&quot;#20&quot;</span>,
  572. <span class="enscript-string">&quot;#21&quot;</span>,
  573. <span class="enscript-string">&quot;#22&quot;</span>,
  574. <span class="enscript-string">&quot;#23&quot;</span>,
  575. <span class="enscript-string">&quot;#24&quot;</span>,
  576. <span class="enscript-string">&quot;#25&quot;</span>,
  577. <span class="enscript-string">&quot;#26&quot;</span>,
  578. <span class="enscript-string">&quot;#27&quot;</span>,
  579. <span class="enscript-string">&quot;#28&quot;</span>,
  580. <span class="enscript-string">&quot;#29&quot;</span>,
  581. <span class="enscript-string">&quot;#30&quot;</span>,
  582. <span class="enscript-string">&quot;#31&quot;</span>,
  583. <span class="enscript-string">&quot;#32&quot;</span>,
  584. <span class="enscript-string">&quot;#33&quot;</span>,
  585. <span class="enscript-string">&quot;#34&quot;</span>,
  586. <span class="enscript-string">&quot;#35&quot;</span>,
  587. <span class="enscript-string">&quot;#36&quot;</span>,
  588. <span class="enscript-string">&quot;#37&quot;</span>,
  589. <span class="enscript-string">&quot;#38&quot;</span>,
  590. <span class="enscript-string">&quot;#39&quot;</span>,
  591. <span class="enscript-string">&quot;#40&quot;</span>,
  592. <span class="enscript-string">&quot;#41&quot;</span>,
  593. <span class="enscript-string">&quot;#42&quot;</span>,
  594. <span class="enscript-string">&quot;#43&quot;</span>,
  595. <span class="enscript-string">&quot;#44&quot;</span>,
  596. <span class="enscript-string">&quot;#45&quot;</span>,
  597. <span class="enscript-string">&quot;#46&quot;</span>,
  598. <span class="enscript-string">&quot;#47&quot;</span>,
  599. <span class="enscript-string">&quot;#48&quot;</span>,
  600. <span class="enscript-string">&quot;#49&quot;</span>,
  601. <span class="enscript-string">&quot;#50&quot;</span>,
  602. <span class="enscript-string">&quot;#51&quot;</span>,
  603. <span class="enscript-string">&quot;#52&quot;</span>,
  604. <span class="enscript-string">&quot;#53&quot;</span>,
  605. <span class="enscript-string">&quot;#54&quot;</span>,
  606. <span class="enscript-string">&quot;#55&quot;</span>,
  607. <span class="enscript-string">&quot;#56&quot;</span>,
  608. <span class="enscript-string">&quot;#57&quot;</span>,
  609. <span class="enscript-string">&quot;#58&quot;</span>,
  610. <span class="enscript-string">&quot;#59&quot;</span>,
  611. <span class="enscript-string">&quot;#60&quot;</span>,
  612. <span class="enscript-string">&quot;#61&quot;</span>,
  613. <span class="enscript-string">&quot;#62&quot;</span>,
  614. <span class="enscript-string">&quot;#63&quot;</span>,
  615. <span class="enscript-string">&quot;#64&quot;</span>,
  616. <span class="enscript-string">&quot;#65&quot;</span>,
  617. <span class="enscript-string">&quot;#66&quot;</span>,
  618. <span class="enscript-string">&quot;#67&quot;</span>,
  619. <span class="enscript-string">&quot;#68&quot;</span>,
  620. <span class="enscript-string">&quot;#69&quot;</span>,
  621. <span class="enscript-string">&quot;#70&quot;</span>,
  622. <span class="enscript-string">&quot;#71&quot;</span>,
  623. <span class="enscript-string">&quot;#72&quot;</span>,
  624. <span class="enscript-string">&quot;#73&quot;</span>,
  625. <span class="enscript-string">&quot;#74&quot;</span>,
  626. <span class="enscript-string">&quot;#75&quot;</span>,
  627. <span class="enscript-string">&quot;#76&quot;</span>,
  628. <span class="enscript-string">&quot;#77&quot;</span>,
  629. <span class="enscript-string">&quot;#78&quot;</span>,
  630. <span class="enscript-string">&quot;#79&quot;</span>,
  631. <span class="enscript-string">&quot;#80&quot;</span>,
  632. <span class="enscript-string">&quot;#81&quot;</span>,
  633. <span class="enscript-string">&quot;#82&quot;</span>,
  634. <span class="enscript-string">&quot;#83&quot;</span>,
  635. <span class="enscript-string">&quot;#84&quot;</span>,
  636. <span class="enscript-string">&quot;#85&quot;</span>,
  637. <span class="enscript-string">&quot;#86&quot;</span>,
  638. <span class="enscript-string">&quot;#87&quot;</span>,
  639. <span class="enscript-string">&quot;#88&quot;</span>,
  640. <span class="enscript-string">&quot;#89&quot;</span>,
  641. <span class="enscript-string">&quot;#80&quot;</span>,
  642. <span class="enscript-string">&quot;#91&quot;</span>,
  643. <span class="enscript-string">&quot;#92&quot;</span>,
  644. <span class="enscript-string">&quot;#93&quot;</span>,
  645. <span class="enscript-string">&quot;#94&quot;</span>,
  646. <span class="enscript-string">&quot;#95&quot;</span>,
  647. <span class="enscript-string">&quot;#96&quot;</span>,
  648. <span class="enscript-string">&quot;#97&quot;</span>,
  649. <span class="enscript-string">&quot;#98&quot;</span>,
  650. <span class="enscript-string">&quot;#99&quot;</span>,
  651. <span class="enscript-string">&quot;#100&quot;</span>,
  652. <span class="enscript-string">&quot;#101&quot;</span>,
  653. <span class="enscript-string">&quot;#102&quot;</span>,
  654. <span class="enscript-string">&quot;#103&quot;</span>,
  655. <span class="enscript-string">&quot;#104&quot;</span>,
  656. <span class="enscript-string">&quot;#105&quot;</span>,
  657. <span class="enscript-string">&quot;#106&quot;</span>,
  658. <span class="enscript-string">&quot;#107&quot;</span>,
  659. <span class="enscript-string">&quot;#108&quot;</span>,
  660. <span class="enscript-string">&quot;#109&quot;</span>,
  661. <span class="enscript-string">&quot;#110&quot;</span>,
  662. <span class="enscript-string">&quot;#111&quot;</span>,
  663. <span class="enscript-string">&quot;#112&quot;</span>,
  664. <span class="enscript-string">&quot;#113&quot;</span>,
  665. <span class="enscript-string">&quot;#114&quot;</span>,
  666. <span class="enscript-string">&quot;#115&quot;</span>,
  667. <span class="enscript-string">&quot;#116&quot;</span>,
  668. <span class="enscript-string">&quot;#117&quot;</span>,
  669. <span class="enscript-string">&quot;#118&quot;</span>,
  670. <span class="enscript-string">&quot;#119&quot;</span>,
  671. <span class="enscript-string">&quot;#120&quot;</span>,
  672. <span class="enscript-string">&quot;#121&quot;</span>,
  673. <span class="enscript-string">&quot;#122&quot;</span>,
  674. <span class="enscript-string">&quot;#123&quot;</span>,
  675. <span class="enscript-string">&quot;#124&quot;</span>,
  676. <span class="enscript-string">&quot;#125&quot;</span>,
  677. <span class="enscript-string">&quot;#126&quot;</span>,
  678. <span class="enscript-string">&quot;#127&quot;</span>,
  679. <span class="enscript-string">&quot;echo&quot;</span>,
  680. <span class="enscript-string">&quot;echo reply&quot;</span>,
  681. <span class="enscript-string">&quot;multicast listener query&quot;</span>,
  682. <span class="enscript-string">&quot;multicast listener report&quot;</span>,
  683. <span class="enscript-string">&quot;multicast listener done&quot;</span>,
  684. <span class="enscript-string">&quot;router solicitation&quot;</span>,
  685. <span class="enscript-string">&quot;router advertisement&quot;</span>,
  686. <span class="enscript-string">&quot;neighbor solicitation&quot;</span>,
  687. <span class="enscript-string">&quot;neighbor advertisement&quot;</span>,
  688. <span class="enscript-string">&quot;redirect&quot;</span>,
  689. <span class="enscript-string">&quot;router renumbering&quot;</span>,
  690. <span class="enscript-string">&quot;node information request&quot;</span>,
  691. <span class="enscript-string">&quot;node information reply&quot;</span>,
  692. <span class="enscript-string">&quot;inverse neighbor solicitation&quot;</span>,
  693. <span class="enscript-string">&quot;inverse neighbor advertisement&quot;</span>,
  694. <span class="enscript-string">&quot;#143&quot;</span>,
  695. <span class="enscript-string">&quot;#144&quot;</span>,
  696. <span class="enscript-string">&quot;#145&quot;</span>,
  697. <span class="enscript-string">&quot;#146&quot;</span>,
  698. <span class="enscript-string">&quot;#147&quot;</span>,
  699. <span class="enscript-string">&quot;#148&quot;</span>,
  700. <span class="enscript-string">&quot;#149&quot;</span>,
  701. <span class="enscript-string">&quot;#150&quot;</span>,
  702. <span class="enscript-string">&quot;#151&quot;</span>,
  703. <span class="enscript-string">&quot;#152&quot;</span>,
  704. <span class="enscript-string">&quot;#153&quot;</span>,
  705. <span class="enscript-string">&quot;#154&quot;</span>,
  706. <span class="enscript-string">&quot;#155&quot;</span>,
  707. <span class="enscript-string">&quot;#156&quot;</span>,
  708. <span class="enscript-string">&quot;#157&quot;</span>,
  709. <span class="enscript-string">&quot;#158&quot;</span>,
  710. <span class="enscript-string">&quot;#159&quot;</span>,
  711. <span class="enscript-string">&quot;#160&quot;</span>,
  712. <span class="enscript-string">&quot;#161&quot;</span>,
  713. <span class="enscript-string">&quot;#162&quot;</span>,
  714. <span class="enscript-string">&quot;#163&quot;</span>,
  715. <span class="enscript-string">&quot;#164&quot;</span>,
  716. <span class="enscript-string">&quot;#165&quot;</span>,
  717. <span class="enscript-string">&quot;#166&quot;</span>,
  718. <span class="enscript-string">&quot;#167&quot;</span>,
  719. <span class="enscript-string">&quot;#168&quot;</span>,
  720. <span class="enscript-string">&quot;#169&quot;</span>,
  721. <span class="enscript-string">&quot;#170&quot;</span>,
  722. <span class="enscript-string">&quot;#171&quot;</span>,
  723. <span class="enscript-string">&quot;#172&quot;</span>,
  724. <span class="enscript-string">&quot;#173&quot;</span>,
  725. <span class="enscript-string">&quot;#174&quot;</span>,
  726. <span class="enscript-string">&quot;#175&quot;</span>,
  727. <span class="enscript-string">&quot;#176&quot;</span>,
  728. <span class="enscript-string">&quot;#177&quot;</span>,
  729. <span class="enscript-string">&quot;#178&quot;</span>,
  730. <span class="enscript-string">&quot;#179&quot;</span>,
  731. <span class="enscript-string">&quot;#180&quot;</span>,
  732. <span class="enscript-string">&quot;#181&quot;</span>,
  733. <span class="enscript-string">&quot;#182&quot;</span>,
  734. <span class="enscript-string">&quot;#183&quot;</span>,
  735. <span class="enscript-string">&quot;#184&quot;</span>,
  736. <span class="enscript-string">&quot;#185&quot;</span>,
  737. <span class="enscript-string">&quot;#186&quot;</span>,
  738. <span class="enscript-string">&quot;#187&quot;</span>,
  739. <span class="enscript-string">&quot;#188&quot;</span>,
  740. <span class="enscript-string">&quot;#189&quot;</span>,
  741. <span class="enscript-string">&quot;#180&quot;</span>,
  742. <span class="enscript-string">&quot;#191&quot;</span>,
  743. <span class="enscript-string">&quot;#192&quot;</span>,
  744. <span class="enscript-string">&quot;#193&quot;</span>,
  745. <span class="enscript-string">&quot;#194&quot;</span>,
  746. <span class="enscript-string">&quot;#195&quot;</span>,
  747. <span class="enscript-string">&quot;#196&quot;</span>,
  748. <span class="enscript-string">&quot;#197&quot;</span>,
  749. <span class="enscript-string">&quot;#198&quot;</span>,
  750. <span class="enscript-string">&quot;#199&quot;</span>,
  751. <span class="enscript-string">&quot;#200&quot;</span>,
  752. <span class="enscript-string">&quot;#201&quot;</span>,
  753. <span class="enscript-string">&quot;#202&quot;</span>,
  754. <span class="enscript-string">&quot;#203&quot;</span>,
  755. <span class="enscript-string">&quot;#204&quot;</span>,
  756. <span class="enscript-string">&quot;#205&quot;</span>,
  757. <span class="enscript-string">&quot;#206&quot;</span>,
  758. <span class="enscript-string">&quot;#207&quot;</span>,
  759. <span class="enscript-string">&quot;#208&quot;</span>,
  760. <span class="enscript-string">&quot;#209&quot;</span>,
  761. <span class="enscript-string">&quot;#210&quot;</span>,
  762. <span class="enscript-string">&quot;#211&quot;</span>,
  763. <span class="enscript-string">&quot;#212&quot;</span>,
  764. <span class="enscript-string">&quot;#213&quot;</span>,
  765. <span class="enscript-string">&quot;#214&quot;</span>,
  766. <span class="enscript-string">&quot;#215&quot;</span>,
  767. <span class="enscript-string">&quot;#216&quot;</span>,
  768. <span class="enscript-string">&quot;#217&quot;</span>,
  769. <span class="enscript-string">&quot;#218&quot;</span>,
  770. <span class="enscript-string">&quot;#219&quot;</span>,
  771. <span class="enscript-string">&quot;#220&quot;</span>,
  772. <span class="enscript-string">&quot;#221&quot;</span>,
  773. <span class="enscript-string">&quot;#222&quot;</span>,
  774. <span class="enscript-string">&quot;#223&quot;</span>,
  775. <span class="enscript-string">&quot;#224&quot;</span>,
  776. <span class="enscript-string">&quot;#225&quot;</span>,
  777. <span class="enscript-string">&quot;#226&quot;</span>,
  778. <span class="enscript-string">&quot;#227&quot;</span>,
  779. <span class="enscript-string">&quot;#228&quot;</span>,
  780. <span class="enscript-string">&quot;#229&quot;</span>,
  781. <span class="enscript-string">&quot;#230&quot;</span>,
  782. <span class="enscript-string">&quot;#231&quot;</span>,
  783. <span class="enscript-string">&quot;#232&quot;</span>,
  784. <span class="enscript-string">&quot;#233&quot;</span>,
  785. <span class="enscript-string">&quot;#234&quot;</span>,
  786. <span class="enscript-string">&quot;#235&quot;</span>,
  787. <span class="enscript-string">&quot;#236&quot;</span>,
  788. <span class="enscript-string">&quot;#237&quot;</span>,
  789. <span class="enscript-string">&quot;#238&quot;</span>,
  790. <span class="enscript-string">&quot;#239&quot;</span>,
  791. <span class="enscript-string">&quot;#240&quot;</span>,
  792. <span class="enscript-string">&quot;#241&quot;</span>,
  793. <span class="enscript-string">&quot;#242&quot;</span>,
  794. <span class="enscript-string">&quot;#243&quot;</span>,
  795. <span class="enscript-string">&quot;#244&quot;</span>,
  796. <span class="enscript-string">&quot;#245&quot;</span>,
  797. <span class="enscript-string">&quot;#246&quot;</span>,
  798. <span class="enscript-string">&quot;#247&quot;</span>,
  799. <span class="enscript-string">&quot;#248&quot;</span>,
  800. <span class="enscript-string">&quot;#249&quot;</span>,
  801. <span class="enscr…