20 20.1 (routing domain) s o c k e t P F _ R O U T E S O C K _ R A W 1) R T M _ A D D 2) R T M _ D E L E T E 3) R T M _ G E T 4) R T M _ C H A N G E 5) R T M _ L O C K (r o u t e _ o u t p u t) (r a w _ i n p u 20.2 r o u t e d o m a i n p r o t o s w S O C K _ R A W 2 0-1 r o u t e d o m a i n P F _ R O U T E d o m a i n d o m _ f a m i l y P F _ R O U T E d o m _ n a m e r o u t e d o m _ i n i t r o u t e _ i n i t 18-30 d o m _ e x t e r n a l i z e 0 d o m _ d i s p o s e 0 d o m _ p r o t o s w r o u t e s w 20-2 d o m _ p r o t o s w N P R O T O S W d o m _ n e x t d o m a i n i n i t 7-15 d o m _ r t a t t c h 0 d o m _ r t o f f s e t 0 d o m _ m a x r t k e y 0 20-1 r o u t e d o m a i n ( T C P U D P I C M P ) I n t e r n e t S O C K _ R A W 20-2 P F _ R O U T E
2 0 519 r o u t e s w [ 0 ] p r _ t y p e S O C K _ R A W p r _ d o m a i n & r o u t e d o m a i n p r _ p r o t o c o l 0 p r _ f l a g s P R _ A T O M I P R _ A D D R p r _ i n p u t r a w _ i n p u t r a w _ i n p u t p r _ o u t p u t r o u t e _ o u t p u t P R U _ S E N D p r _ c t l i n p u t r a w _ c t l i n p u t p r _ c t l o u t p u t 0 p r _ u s r r e q r o u t e _ u s r r e q p r _ i n i t r a w _ i n i t p r _ f a s t t i m o 0 p r _ s l o w t i m o 0 p r _ d r a i n 0 p r _ s y s c t l s y s c t l _ r t a b l e s y s c t l( 8 ) 20-2 p r o t o s w 20.3 socket(pf_route, SOCK_RAW, protocol); (r o u t e _ u s r r e q) P R U _ A T T A C H p ro t o c o l p ro t o c o l A F _ I N E T I n t e r n e t p ro t o c o l 0 (raw control block) 32 I P 2 0-3 r a w c b 20-3 r a w c b r a w c b 20-4 39-47 19-26 s o c k p r o t o s p _ f a m i l y P F _ R O U T E s p _ p r o t o c o l s o c k e t
520 TCP/IP 2 r c b _ f a d d r r o u t e _ s r c 19-26 r o u t e _ s r c r c b _ l a d d r 20-4 20.4 r a w _ i n i t 20-5 r a w _ i n i t 20-2 p r o t o s w 18-29 3 8-4 2 20-5 r a w _ i n i t 20.5 r o u t e _ o u t p u t 18-11 P R U _ S E N D
2 0 521 r o u t e _ o u t p u t 18-9 ( ) s o s e n d m b u f 20-6 R T M _ A D D ( ) mbuf mbuf raw_input IP IP rtm_addrs rt_addrs 20-6 R T M _ A D D r o u t e _ o u t p u t r t _ a d d r i n f o R T A X _ r t m _ a d d r s r t _ m s g h d r
522 TCP/IP 2 0 x 07 ( 1 9-19 ) R T M _ A D D g e n m a s k w r i t e (s o s e n d ) m b u f m _ c o p y d a t a m b u f r o u t e _ o u t p u t m a l l o c m b u f r o u t e _ o u t p u t r t _ x a d d r s r t _ a d d r i n f o r o u t e _ o u t p u t 19-19 r t i _ a d d r s r o u t e _ o u t p u t r t _ m s g h d r e r r n o r t m _ e r r n o ( E E X I S T ) R T F _ D O N E r t m _ f l a g s r t _ m s g h d r 0 m _ c o p y b a c k m b u f r a w _ i n p u t P C B S O _ U S E L O O P B A C K r o u t e 0 s h u t d o w n r o u t e _ o u t p u t 20-7 20-7 r o u t e _ o u t p u t
2 0 523 20-7 ( ) r o u t e _ o u t p u t 20-8 20-8 r o u t e _ o u t p u t m b u f
524 TCP/IP 2 1. m b u f 20-8 ( ) 113-136 m b u f r t _ m s g h d r m b u f r t m _ m s g l e n 2. 137-142 m _ c o p y d a t a m b u f 3. 1 4 3-1 4 6 147-149 I D r t m _ p i d i n f o.r t i _ a d d r s r t _ x a d d r s( ) i n f o 8 4. 150-151 i n f o.r t i _ i n f o [ R T A X _ D S T ] E I N V A L d s t ( 1 9-19 ) 5. g e n m a s k 152-159 g e n m a s k R T F _ C L O N I N G ( 1 9-8 ) r n _ a d d m a s k g e n m a s k g e n m a s k 2 0-9 r o u t e _ o u t p u t R T M _ A D D R T M _ D E L E T E 1 6 2-1 6 3 R T M _ A D D 164-165 r t r e q u e s t n e t m a s k O K s a v e d _ n r t 166-172 r t _ m e t r i c s 1 g e n m a s k ( ) 173-176 R T M _ D E L E T E r t r e q u e s t 0 r t r e q u e s t r t f r e e ( 1 9-7 ) 20-10 R T M _ G E T R T M _ C H A N G E R T M _ L O C K
2 0 525 20-9 r o u t e _ o u t p u t R T M _ A D D R T M _ D E L E T E 20-10 r o u t e _ o u t p u t R T M _ G E T R T M _ C H A N G E R T M _ L O C K 6. 177-182 r t a l l o c 1 E S R C H 7. 183-187 R T M _ C H A N G E R T M _ L O C K d s t E S R C H
526 TCP/IP 2 8. 1 8 8-1 9 3 n e t m a s k (m a s k _ r n h e a d) n e t m a s k r n _ m a s k n e t m a s k f o r n e t m a s k r n _ m a s k ( ) n e t m a s k 194-195 f o r E T O O M A N Y R E F S X X X r t a l l o c 1 r t a l l o c 1 R T M _ G E T 2 0-1 1 2 0-11 r o u t e _ o u t p u t R T M _ G E T
2 0 527 r o u t e _ o u t p u t 20-6 m _ c o p y d a t a 9. 198-203 r t i _ i n f o d s t g a t e n e t m a s k g e n m a s k i n f o 10. 204-213 r t m _ f l a g s R T A _ I F P R T A _ I F A i f a d d r ( r t _ i f p-> a d d r l i s t ) ( r t _ i f a-> i f a _ a d d r ) 11. 214-224 r t _ m s g 2 R T M _ G E T i n f o r t m 225-230 r t _ m s g 2 r t _ m s g h d r 2 0-12 R T M _ C H A N G E R T M _ L O C K 12. 231-233 g a t e r t _ s e t g a t e 13. 234-244 ( ) r t _ i f p r t _ i f a i f p a d d r i f a a d d r r t _ i f p r t _ i f a 14. 245-256 (i f a ) r t _ i f a r t _ i f p r t _ i f a R T M _ D E L E T E ( ) ( X. 25 ) 15. 2 5 7-2 5 8 r t _ s e t m e t r i c s 16. 259-260 R T M _ A D D 17. 261-262 g e n m a s k 20-8 r t _ g e n m a s k 18.
528 TCP/IP 2 266-270 R T M _ L O C K r t _ r m x.r m x _ l o c k s 20-13 20-12 r o u t e _ o u t p u t R T M _ C H A N G E R T M _ L O C K r t _ m e t r i c s r m x _ l o c k s r m x _ l o c k s T C P 27-3 r m x _ p k s e n t r t m _ i n i t s
2 0 529 R T V _ M T U 0 x 01 r m x _ m t u R T V _ H O P C O U N T 0 x 02 r m x _ h o p c o u n t R T V _ E X P I R E 0 x 04 r m x _ e x p i r e R T V _ R P I P E 0 x 08 r m x _ r e c v p i p e R T V _ S P I P E 0 x 10 r m x _ s e n d p i p e R T V _ S S T H R E S H 0 x 20 r m x _ s s t h r e s h R T V _ R T T 0 x 40 r m x _ r t t R T V _ R T T V A R 0 x 80 r m x _ r t t v a r 20-13 r t _ s e t m e t r i c s r t m _ r m x.r m x _ l o c k s r t _ r m x.r m x _ l o c k s (r t m _ i n i t s ) (r t m _ i n i t s) (r t m _ r m x.r m x _ l o c k s) 273-275 d e f a u l t 20-9 s w i t c h r o u t e _ o u t p u t 20-14 r a w _ i n p u t 20-14 r o u t e _ o u t p u t r a w _ i n p u t
530 TCP/IP 2 19. O K 20-14 ( ) 276-282 f l u s h s e n d e r r r t m _ e r r n o R T F _ D O N E 20. 283-284 20-10 r t a l l o c 1 21. 2 8 5-2 9 6 S O _ U S E L O O P B A C K ( R T M _ G E T ) 1 m b u f 22. 297-299 r p 23. m b u f 300-303 m b u f ( 2 0-6 ) 24. 304-305 r p s p _ f a m i l y 0 s p _ f a m i l y(r o u t e _ p r o t o 19-26 ) P F _ R O U T E r a w _ i n p u t r a w _ i n p u t s p _ f a m i l y 0 25. 306-308 d s t I n t e r n e t P F _ I N E T r a w _ i n p u t 309-313 s p _ f a m i l y 0 P F _ R O U T E 20.6 r t _ x a d d r s m b u f (r t m _ a d d r s) r t _ a d d r i n f o r t i _ i n f o r o u t e _ o u t p u t r t _ x a d d r s ( 2 0-8 ) r t _ x a d d r s r t i _ i n f o 20-15 330-340 0 341-347 8 (R T M _ M A X) ( ) r t i _ i n f o A D V A N C E s a _ l e n
2 0 531 4 c p 20-15 r t _ x a d d r s r t i _ i n f o 20.7 r t _ s e t m e t r i c s r o u t e _ o u t p u t r t m _ i n i t s r t m _ r m x 20-13 r t m _ a d d r s r t m _ i n i t s r t m _ a d d r s r t _ m e t r i c s r t _ m s g h d r r t m _ i n i t s 2 0-16 r t _ s e t m e t r i c s 20-16 r t _ s e t m e t r i c s r t _ m e t r i c s
532 TCP/IP 2 314-318 w h i c h r t m _ i n i t s i n r t _ m e t r i c s o u t r t _ m e t r i c s 319-329 8 R T M _ A D D r o u t e _ o u t p u t r t r e q u e s t 0 ( 1 9-9 ) 0 20.8 r a w _ i n p u t r a w _ i n p u t 18-11 r a w _ i n p u t P F _ R O U T E s o c k e t 0 A F _ I N E T ( 20. 3 ) r c b _ p r o t o s p _ f a m i l y s p _ p r o t o c o l 2 0-17 r a w _ i n p u t 20-17 r a w _ i n p u t 0
2 0 533 20-17 ( ) 51-61 r a w _ i n p u t p r o t o s r c d s t r o u t e _ p r o t o r o u t e _ s r c r o u t e _ d s t 19-26 1. 62-67 f o r ( P F _ R O U T E) s o c k p r o t o (s o c k e t ) s o c k p r o t o 0 2. 6 8-8 1 r c b _ l a d d r r c b _ f a d d r b i n d c o n n e c t N e t / 3 r o u t e _ u s r r e q r o u t e _ s r c s r c 3. 82-107 l a s t s o c k e m _ c o p y s b a p p e n d a d d r l a s t l a s t m _ c o p y( ) N N 1 s o c k e t 0 (
534 TCP/IP 2 ) 20.9 r o u t e _ u s r r e q r o u t e _ u s r r e q 20-18 20-18 r o u t e _ u s r r e q P R U _ x x x
2 0 535 1. P R U _ A T T A C H 64-77 s o c k e t P R U _ A T T A C H M A L L O C s o c k e t s o _ p c b r a w c 0 2. P R U _ D E T A C H 78-87 c l o s e P R U _ D E T A C H s o c k e t r o u t e _ c b 1 a n y _ c o u n t 3. 88-90 r a w _ u s r r e q P R U _x x x 4. 91-104 P R U _ A T T A C H r a w _ u s r r e q r o u t e _ c b a n y _ c o u n t 5. 105-106 r o u t e _ s r c P F _ R O U T E 6. S O _ U S E L O O P B A C K 107-111 S O _ U S E L O O P B A C K 20.10 r a w _ u s r r e q r a w _ u s r r e q r o u t e _ u s r r e q ( OSI CLNP) r a w _ u s r r e q r o u t e _ u s r r e q r a w _ u s r r e q p r _ u s r r e q p r _ u s r r e q 2 0-19 r a w _ u s r r e q s w i t c h 1. P R U _ C O N T R O L 119-129 P R U _ C O N T R O L i o c t l 2. 130-133 ( s e n d m s g ) 3. 134-137 s o c k e t ( r o u t e _ u s r r e q) s o _ p c b 262-269 s w i t c h d e f a u l t c a s e P R U _ B I N D
536 TCP/IP 2 P R U _ C O N N E C T N e t /3 b i n d c o n n e c t ( p a n i c ) ( b u g ) 20-19 r a w _ u s r r e g c a s e 20-20 P R U _ A T T A C H P R U _ D E T A C H 139-148 P R U _ A T T A C H s o c k e t 149-150 r a w _ a t t a c h( 2 0-24 ) n a m s o c k e t 151-159 P R U _ D E T A C H c l o s e r p s w i t c h 1 6 0-1 6 1 r a w _ d e t a c h( 2 0-2 5 ) 2 0-21 P R U _ C O N N E C T2 P R U _ D I S C O N N E C T P R U _ S H U T D O W N 186-188 P R U _ C O N N E C T2 s o c k e t p a i r 189-196 ( 2 0-18 ) P R U _ D I S C O N N E C T P R U _ D E T A C H
2 0 537 20-20 r a w _ u s r r e q P R U _ A T T A C H P R U _ D E T A C H c l o s e r a w _ d i s c o n n e c t s o i s d i s c o n n e c t e d 197-202 s h u t d o w n P R U _ S H U T D O W N s o c a n t s e n d m o r e 20-21 r a w _ u s r r e q P R U _ C O N N E C T 2 P R U _ D I S C O N N E C T P R U _ S H U T D O W N P R U _ S E N D P R U _ A B O R T P R U _ S E N S E 20-22 203-217 s o s e n d P R U _ S E N D n a m
538 TCP/IP 2 20-22 r a w _ u s r r e q P R U _ S E N D P R U _ A B O R T P R U _ S E N S E s e n d t o s e n d m s g r o u t e _ u s r r e q r c b _ f a d d r 2 1 8-2 2 2 m m b u f p r _ o u t p u t r o u t e _ o u t p u t 223-227 P R U _ A B O R T 228-232 f s t a t P R U _ S E N S E O K 2 0-23 P R U _x x x 20-23 r a w _ u s r r e q
2 0 539 20-23 ( ) 2 3 3-2 4 3 244-261 P R U _ S O C K A D D R P R U _ P E E R A D D R g e t s o c k n a m e g e t p e e r n a m e b i n d r o u t e _ s r c r o u t e _ u s r r e q 2 0. 11 r a w _ a t t a c h r a w _ d e t a c h r a w _ d i s c o n n e c t r a w _ a t t a c h 20-24 r a w _ i n p u t P R U _ A T T A C H 20-24 r a w _ a t t a c h
540 TCP/IP 2 49-64 s o r e s e r v e 8192 65-67 s o c k e t d o m _ f a m i l y( 20-1 P F _ R O U T E) p r o t o (s o c k e t ) 68-70 i n s q u e r a w c b r a w _ d e t a c h 20-25 r a w _ i n p u t P R U _ D E T A C H 20-25 r a w _ d e t a c h 75-84 s o c k e t s o _ p c b r e m q u e f r e e r a w _ d i s c o n n e c t 20-26 r a w _ i n p u t P R U _ D I S C O N N E C T P R U _ A B O R T 88-94 r a w _ d e t a c h 20-26 r a w _ d i s c o n n e c t 20.12 P F _ R O U T E s y s c t l ( ) ( P C B ) r a w c b 22 U D P T C P I P I n t e r n e t (i n p c b) s o c k e t P C B r a w c b i n p c b s o c k e t P C B
2 0 541 r o u t e _ o u t p u t r a w _ i n p u P R U _ x x x r a w _ u s r r e q r o u t e _ u s r r e q x x x_ u s r r e ( U D P T C P I P ) s w i t c h 20.1 r o u t e _ o u t p u t 20.2 r o u t e s w p r _ p r o t o c o l 0 s o c k e t 0 p ro t o c o l 20.3 ( A R P )