Subversion Repositories Kolibri OS

Rev

Rev 425 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 425 Rev 431
Line 1... Line 1...
1
$Revision: 425 $
1
$Revision: 431 $
2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3
;;
-
 
-
 
3
;;                                                              ;;
-
 
4
;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;;
-
 
5
;; Distributed under terms of the GNU General Public License    ;;
-
 
6
;;                                                              ;;
4
;;  ICMP.INC
7
;;  ICMP.INC                                                    ;;
5
;;
-
 
-
 
8
;;                                                              ;;
6
;;  Internet Control Message Protocol ( RFC 792 )
9
;;  Internet Control Message Protocol ( RFC 792 )               ;;
7
;;
-
 
-
 
10
;;                                                              ;;
8
;;  Last revision: 11.11.2006
11
;;  Last revision: 11.11.2006                                   ;;
9
;;
-
 
-
 
12
;;                                                              ;;
10
;;  This file contains the following:
13
;;  This file contains the following:                           ;;
11
;;   icmp_rx - processes ICMP-packets received by the IP layer
14
;;   icmp_rx - processes ICMP-packets received by the IP layer  ;;
12
;;
-
 
-
 
15
;;                                                              ;;
13
;;  Changes history:
16
;;  Changes history:                                            ;;
14
;;   22.09.2003 - [Mike Hibbett] : mikeh@oceanfree.net
17
;;   22.09.2003 - [Mike Hibbett] : mikeh@oceanfree.net          ;;
15
;;   11.11.2006 - [Johnny_B] and [smb]
18
;;   11.11.2006 - [Johnny_B] and [smb]                          ;;
16
;;
-
 
-
 
19
;;                                                              ;;
17
;;   Current status:
20
;;   Current status:                                            ;;
18
;;	This implemetation of ICMP proto supports message of ECHO type.
21
;;	This implemetation of ICMP proto supports message of ECHO type.
19
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
22
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 20... Line 23...
20
 
23
 
21
 
24
 
22
struc ICMP_PACKET
25
struc ICMP_PACKET
Line 53... Line 56...
53
;
56
;
Line 54... Line 57...
54
 
57
 
Line 55... Line 58...
55
ICMP_ECHOREPLY		equ	0		; echo reply message
58
ICMP_ECHOREPLY		equ	0		; echo reply message
56
 
59
 
57
ICMP_UNREACH		equ	3
60
ICMP_UNREACH		equ	3
58
	ICMP_UNREACH_NET	equ	0		; bad net 
61
	ICMP_UNREACH_NET	equ	0		; bad net
59
	ICMP_UNREACH_HOST	equ	1		; bad host 
62
	ICMP_UNREACH_HOST	equ	1		; bad host
60
	ICMP_UNREACH_PROTOCOL	equ	2		; bad protocol 
63
	ICMP_UNREACH_PROTOCOL	equ	2		; bad protocol
61
	ICMP_UNREACH_PORT	equ	3		; bad port
64
	ICMP_UNREACH_PORT	equ	3		; bad port
62
	ICMP_UNREACH_NEEDFRAG	equ	4		; IP_DF caused drop
65
	ICMP_UNREACH_NEEDFRAG	equ	4		; IP_DF caused drop
63
	ICMP_UNREACH_SRCFAIL	equ	5		; src route failed
66
	ICMP_UNREACH_SRCFAIL	equ	5		; src route failed
64
	ICMP_UNREACH_NET_UNKNOWN equ	6		; unknown net
67
	ICMP_UNREACH_NET_UNKNOWN equ	6		; unknown net
65
	ICMP_UNREACH_HOST_UNKNOWN equ	7		; unknown host
68
	ICMP_UNREACH_HOST_UNKNOWN equ	7		; unknown host
66
	ICMP_UNREACH_ISOLATED	equ	8		; src host isolated 
69
	ICMP_UNREACH_ISOLATED	equ	8		; src host isolated
67
	ICMP_UNREACH_NET_PROHIB	equ	9		; prohibited access 
70
	ICMP_UNREACH_NET_PROHIB	equ	9		; prohibited access
68
	ICMP_UNREACH_HOST_PROHIB equ	10		; ditto 
71
	ICMP_UNREACH_HOST_PROHIB equ	10		; ditto
69
	ICMP_UNREACH_TOSNET	equ	11		; bad tos for net 
72
	ICMP_UNREACH_TOSNET	equ	11		; bad tos for net
70
	ICMP_UNREACH_TOSHOST	equ	12		; bad tos for host 
73
	ICMP_UNREACH_TOSHOST	equ	12		; bad tos for host
71
	ICMP_UNREACH_FILTER_PROHIB equ	13		; admin prohib 
74
	ICMP_UNREACH_FILTER_PROHIB equ	13		; admin prohib
72
	ICMP_UNREACH_HOST_PRECEDENCE equ 14		; host prec vio. 
75
	ICMP_UNREACH_HOST_PRECEDENCE equ 14		; host prec vio.
73
	ICMP_UNREACH_PRECEDENCE_CUTOFF equ 15		; prec cutoff 
76
	ICMP_UNREACH_PRECEDENCE_CUTOFF equ 15		; prec cutoff
74
 
77
 
75
ICMP_SOURCEQUENCH	equ	4		; packet lost, slow down 
78
ICMP_SOURCEQUENCH	equ	4		; packet lost, slow down
76
 
79
 
77
ICMP_REDIRECT		equ	5		; shorter route, codes: 
80
ICMP_REDIRECT		equ	5		; shorter route, codes:
78
	ICMP_REDIRECT_NET	equ	0		; for network 
81
	ICMP_REDIRECT_NET	equ	0		; for network
79
	ICMP_REDIRECT_HOST	equ	1		; for host 
82
	ICMP_REDIRECT_HOST	equ	1		; for host
80
	ICMP_REDIRECT_TOSNET	equ	2		; for tos and net 
83
	ICMP_REDIRECT_TOSNET	equ	2		; for tos and net
81
	ICMP_REDIRECT_TOSHOST	equ	3		; for tos and host 
84
	ICMP_REDIRECT_TOSHOST	equ	3		; for tos and host
82
	
85
 
83
ICMP_ALTHOSTADDR	equ	6		; alternate host address 
86
ICMP_ALTHOSTADDR	equ	6		; alternate host address
84
ICMP_ECHO		equ	8		; echo service 
87
ICMP_ECHO		equ	8		; echo service
85
ICMP_ROUTERADVERT	equ	9		; router advertisement 
88
ICMP_ROUTERADVERT	equ	9		; router advertisement
86
	ICMP_ROUTERADVERT_NORMAL equ 0			; normal advertisement 
89
	ICMP_ROUTERADVERT_NORMAL equ 0			; normal advertisement
87
	ICMP_ROUTERADVERT_NOROUTE_COMMON equ 16		; selective routing 
90
	ICMP_ROUTERADVERT_NOROUTE_COMMON equ 16		; selective routing
88
 
91
 
89
ICMP_ROUTERSOLICIT	equ	10		; router solicitation 
92
ICMP_ROUTERSOLICIT	equ	10		; router solicitation
90
ICMP_TIMXCEED		equ	11		; time exceeded, code: 
93
ICMP_TIMXCEED		equ	11		; time exceeded, code:
91
    ICMP_TIMXCEED_INTRANS	equ	0		; ttl==0 in transit 
94
    ICMP_TIMXCEED_INTRANS	equ	0		; ttl==0 in transit
92
    ICMP_TIMXCEED_REASS	equ	1		; ttl==0 in reass 
95
    ICMP_TIMXCEED_REASS	equ	1		; ttl==0 in reass
93
 
96
 
94
ICMP_PARAMPROB            equ  12		; ip header bad 
97
ICMP_PARAMPROB            equ  12		; ip header bad
95
    ICMP_PARAMPROB_ERRATPTR   equ  0		; error at param ptr 
98
    ICMP_PARAMPROB_ERRATPTR   equ  0		; error at param ptr
96
    ICMP_PARAMPROB_OPTABSENT  equ  1		; req. opt. absent 
99
    ICMP_PARAMPROB_OPTABSENT  equ  1		; req. opt. absent
97
    ICMP_PARAMPROB_LENGTH     equ  2		; bad length 
100
    ICMP_PARAMPROB_LENGTH     equ  2		; bad length
98
	
101
 
99
ICMP_TSTAMP		equ	13		; timestamp request 
102
ICMP_TSTAMP		equ	13		; timestamp request
100
ICMP_TSTAMPREPLY	equ	14		; timestamp reply 
103
ICMP_TSTAMPREPLY	equ	14		; timestamp reply
101
ICMP_IREQ		equ	15		; information request 
104
ICMP_IREQ		equ	15		; information request
102
ICMP_IREQREPLY		equ	16		; information reply 
105
ICMP_IREQREPLY		equ	16		; information reply
103
ICMP_MASKREQ		equ	17		; address mask request 
106
ICMP_MASKREQ		equ	17		; address mask request
104
ICMP_MASKREPLY		equ	18		; address mask reply 
107
ICMP_MASKREPLY		equ	18		; address mask reply
105
ICMP_TRACEROUTE		equ	30		; traceroute 
108
ICMP_TRACEROUTE		equ	30		; traceroute
106
ICMP_DATACONVERR	equ	31		; data conversion error 
109
ICMP_DATACONVERR	equ	31		; data conversion error
107
ICMP_MOBILE_REDIRECT	equ	32		; mobile host redirect 
110
ICMP_MOBILE_REDIRECT	equ	32		; mobile host redirect
108
ICMP_IPV6_WHEREAREYOU	equ	33		; IPv6 where-are-you 
111
ICMP_IPV6_WHEREAREYOU	equ	33		; IPv6 where-are-you
109
 ICMP_IPV6_IAMHERE	equ	34		; IPv6 i-am-here 
112
 ICMP_IPV6_IAMHERE	equ	34		; IPv6 i-am-here
110
ICMP_MOBILE_REGREQUEST	equ	35		; mobile registration req 
113
ICMP_MOBILE_REGREQUEST	equ	35		; mobile registration req
111
ICMP_MOBILE_REGREPLY	equ	36		; mobile registreation reply 
114
ICMP_MOBILE_REGREPLY	equ	36		; mobile registreation reply
112
ICMP_SKIP		equ	39		; SKIP 
115
ICMP_SKIP		equ	39		; SKIP
113
 
116
 
114
ICMP_PHOTURIS		equ	40		; Photuris 
117
ICMP_PHOTURIS		equ	40		; Photuris
115
    ICMP_PHOTURIS_UNKNOWN_INDEX   equ  1		; unknown sec index 
118
    ICMP_PHOTURIS_UNKNOWN_INDEX   equ  1		; unknown sec index
Line 116... Line 119...
116
    ICMP_PHOTURIS_AUTH_FAILED     equ  2		; auth failed 
119
    ICMP_PHOTURIS_AUTH_FAILED     equ  2		; auth failed
117
    ICMP_PHOTURIS_DECRYPT_FAILED  equ  3		; decrypt failed 
120
    ICMP_PHOTURIS_DECRYPT_FAILED  equ  3		; decrypt failed
118
 
121
 
Line 184... Line 187...
184
    mov     eax, NET1OUT_QUEUE
187
    mov     eax, NET1OUT_QUEUE
185
    call    queue
188
    call    queue
Line 186... Line 189...
186
 
189
 
187
  .exit:
190
  .exit:
188
    ret
-
 
189
endp
191
    ret
-
 
192
endp