[26519] 2021-09-01_Linux网络子系统

文档创建者:s7ckTeam
浏览次数:1
最后更新:2025-01-19
2021-09-01_Linux网络子系统 L i n u x x h o l i c   L i n u x   2 0 2 1 - 0 9 - 0 1 x h o l i c h t t p s : / / w w w . c n b l o g s . c o m / y p h o l i c / p / 1 4 3 3 7 3 2 8 . h t m l L i n u x L i n u x 便 1 . L i n u x 2 . T C P / I P 3 . L i n u x   4 . L i n u x   5 . L i n u x   6 . L i n u x 7 . L i n u x L i n u x   (   I N E T ,   I N E T 6 ,   U N I X ,   N E T L I N K . . . ) B S D   s o c k e t   A P I ( A P I )  
  访 s o c k e t   l a y e r s o c k e t p r o t o { } 使 n e t _ d e v i c e T C P / I P T C P / I P 线 N g i n x F T P L i n u x L i n u x s o c k e t 访 L i n u x T C P / I P       0 1 ; I P I P M A C ; ;   ; ; I P ; M A C 广 L i n u x  
T C P / I P s e n d / r e c v     T C P / I P T C P U D P L i n u x   C P U 1 0 0 % 使 使
使 仿 t a s k l e t 使 N E T _ R X _ S O F T I R Q L i n u x   e 1 0 0 0 e 1 0 0 0 _ d r i v e r . p r o b e e 1 0 0 0 _ p r o b e ( ) e 1 0 0 0 使 n e t d e v n e t d e v _ o p s e 1 0 0 0 _ n e t d e v _ o p s e 1 0 0 0 e 1 0 0 0 _ o p e n e n u m {                 H I _ S O F T I R Q = 0 ,                 T I M E R _ S O F T I R Q ,                 N E T _ T X _ S O F T I R Q ,                 N E T _ R X _ S O F T I R Q ,                 B L O C K _ S O F T I R Q ,                 I R Q _ P O L L _ S O F T I R Q ,                 T A S K L E T _ S O F T I R Q ,                 S C H E D _ S O F T I R Q ,                 H R T I M E R _ S O F T I R Q ,                 R C U _ S O F T I R Q ,         / *   P r e f e r a b l e   R C U   s h o u l d   a l w a y s   b e   t h e   l a s t   s o f t i r q   * /                 N R _ S O F T I R Q S } ; s t a t i c   i n t   _ _ i n i t   e 1 0 0 0 _ i n i t _ m o d u l e ( v o i d ) {                 i n t   r e t ;                 p r _ i n f o ( " % s   -   v e r s i o n   % s n " ,   e 1 0 0 0 _ d r i v e r _ s t r i n g ,   e 1 0 0 0 _ d r i v e r _ v e r s i o n ) ;                 p r _ i n f o ( " % s n " ,   e 1 0 0 0 _ c o p y r i g h t ) ;                 r e t   =   p c i _ r e g i s t e r _ d r i v e r ( & e 1 0 0 0 _ d r i v e r ) ; . . .                 r e t u r n   r e t ; } / * *                                                                                                       *   e 1 0 0 0 _ p r o b e   -   D e v i c e   I n i t i a l i z a t i o n   R o u t i n e                     *   @ p d e v :   P C I   d e v i c e   i n f o r m a t i o n   s t r u c t                                           *   @ e n t :   e n t r y   i n   e 1 0 0 0 _ p c i _ t b l             *                                                                   *   R e t u r n s   0   o n   s u c c e s s ,   n e g a t i v e   o n   f a i l u r e                                                                                                                                                                 *                                                                                                                                                                                                                                 *   e 1 0 0 0 _ p r o b e   i n i t i a l i z e s   a n   a d a p t e r   i d e n t i f i e d   b y   a   p c i _ d e v   s t r u c t u r e .                                                                                                                                 *   T h e   O S   i n i t i a l i z a t i o n ,   c o n f i g u r i n g   o f   t h e   a d a p t e r   p r i v a t e   s t r u c t u r e ,                                                                                                                                       *   a n d   a   h a r d w a r e   r e s e t   o c c u r .                                                                                                               * * / s t a t i c   i n t   e 1 0 0 0 _ p r o b e ( s t r u c t   p c i _ d e v   * p d e v ,   c o n s t   s t r u c t   p c i _ d e v i c e _ i d   * e n t ) { . . . . . .                 n e t d e v - > n e t d e v _ o p s   =   & e 1 0 0 0 _ n e t d e v _ o p s ;                 e 1 0 0 0 _ s e t _ e t h t o o l _ o p s ( n e t d e v ) ; . . . . . . } s t a t i c   c o n s t   s t r u c t   n e t _ d e v i c e _ o p s   e 1 0 0 0 _ n e t d e v _ o p s   =   {                 . n d o _ o p e n                               =   e 1 0 0 0 _ o p e n ,                 . n d o _ s t o p                               =   e 1 0 0 0 _ c l o s e ,                 . n d o _ s t a r t _ x m i t                   =   e 1 0 0 0 _ x m i t _ f r a m e ,                 . n d o _ s e t _ r x _ m o d e                 =   e 1 0 0 0 _ s e t _ r x _ m o d e ,                 . n d o _ s e t _ m a c _ a d d r e s s         =   e 1 0 0 0 _ s e t _ m a c ,                 . n d o _ t x _ t i m e o u t                   =   e 1 0 0 0 _ t x _ t i m e o u t , . . . . . . } ;
e 1 0 0 0 h a n d l e r e 1 0 0 0 _ i n t r ( ) s o f t i r q _ i n i t T A S K L E T _ S O F T I R Q H I _ S O F T I R Q s o f t   I R Q N E T _ T X _ S O F T I R Q N E T _ R X _ S O F T I R Q s o f t   I Q n e t _ d e v _ i n i t n e t / c o r e / d e v . c n e t _ r x _ a c t i o n n e t _ t x _ a c t i o n o p e n _ s o f t i r q     / * *                         *   e 1 0 0 0 _ o p e n   -   C a l l e d   w h e n   a   n e t w o r k   i n t e r f a c e   i s   m a d e   a c t i v e       *   @ n e t d e v :   n e t w o r k   i n t e r f a c e   d e v i c e   s t r u c t u r e                           *                                                                                                     *   R e t u r n s   0   o n   s u c c e s s ,   n e g a t i v e   v a l u e   o n   f a i l u r e             *             *   T h e   o p e n   e n t r y   p o i n t   i s   c a l l e d   w h e n   a   n e t w o r k   i n t e r f a c e   i s   m a d e                                                                                                                                                                                                           *   a c t i v e   b y   t h e   s y s t e m   ( I F F _ U P ) .     A t   t h i s   p o i n t   a l l   r e s o u r c e s   n e e d e d                                                                                                                                                           *   f o r   t r a n s m i t   a n d   r e c e i v e   o p e r a t i o n s   a r e   a l l o c a t e d ,   t h e   i n t e r r u p t                                                                                                             *   h a n d l e r   i s   r e g i s t e r e d   w i t h   t h e   O S ,   t h e   w a t c h d o g   t a s k   i s   s t a r t e d ,                                                                                                                                                                                                             *   a n d   t h e   s t a c k   i s   n o t i f i e d   t h a t   t h e   i n t e r f a c e   i s   r e a d y .                                                                                                                                                                                                                             * * / i n t   e 1 0 0 0 _ o p e n ( s t r u c t   n e t _ d e v i c e   * n e t d e v ) {                 s t r u c t   e 1 0 0 0 _ a d a p t e r   * a d a p t e r   =   n e t d e v _ p r i v ( n e t d e v ) ;                 s t r u c t   e 1 0 0 0 _ h w   * h w   =   & a d a p t e r - > h w ; . . . . . .                 e r r   =   e 1 0 0 0 _ r e q u e s t _ i r q ( a d a p t e r ) ; . . . } s t a t i c   i n t   e 1 0 0 0 _ r e q u e s t _ i r q ( s t r u c t   e 1 0 0 0 _ a d a p t e r   * a d a p t e r ) {                 s t r u c t   n e t _ d e v i c e   * n e t d e v   =   a d a p t e r - > n e t d e v ;                 i r q _ h a n d l e r _ t   h a n d l e r   =   e 1 0 0 0 _ i n t r ;                 i n t   i r q _ f l a g s   =   I R Q F _ S H A R E D ;                 i n t   e r r ;                 e r r   =   r e q u e s t _ i r q ( a d a p t e r - > p d e v - > i r q ,   h a n d l e r ,   i r q _ f l a g s ,   n e t d e v - > n a m e , . . . . . . }   v o i d   _ _ i n i t   s o f t i r q _ i n i t ( v o i d ) {         . . . . . .         o p e n _ s o f t i r q ( T A S K L E T _ S O F T I R Q ,   t a s k l e t _ a c t i o n ) ;         o p e n _ s o f t i r q ( H I _ S O F T I R Q ,   t a s k l e t _ h i _ a c t i o n ) ; }       o p e n _ s o f t i r q ( N E T _ T X _ S O F T I R Q ,   n e t _ t x _ a c t i o n ) ;       o p e n _ s o f t i r q ( N E T _ R X _ S O F T I R Q ,   n e t _ r x _ a c t i o n ) ; v o i d   o p e n _ s o f t i r q ( i n t   n r ,   v o i d   ( * a c t i o n ) ( s t r u c t   s o f t i r q _ a c t i o n   * ) ) {         s o f t i r q _ v e c [ n r ] . a c t i o n   =   a c t i o n ; }
      L i n u x   L i n u x 1 .   k s o f t i r q d 线 线 2 .   l i n u x a r p i c m p i p u d p t c p 便 3 .   D M A N A P I p o l l 4 .   R X T X   k s o f t i r q d 线 线 L i n u x 线 k s o f t i r q d 1 N N k e r n e l / s m p b o o t . c s m p b o o t _ r e g i s t e r _ p e r c p u _ t h r e a d   s p a w n _ k s o f t i r q d k e r n e l / s o f t i r q . c s o f t i r q d   / / f i l e :   k e r n e l / s o f t i r q . c s t a t i c   s t r u c t   s m p _ h o t p l u g _ t h r e a d   s o f t i r q _ t h r e a d s   =   {         . s t o r e                     =   & k s o f t i r q d ,         . t h r e a d _ s h o u l d _ r u n     =   k s o f t i r q d _ s h o u l d _ r u n ,         . t h r e a d _ f n             =   r u n _ k s o f t i r q d ,         . t h r e a d _ c o m m                 =   " k s o f t i r q d / % u " , } ;
k s o f t i r q d 线 k s o f t i r q d _ s h o u l d _ r u n r u n _ k s o f t i r q d   k s o f t i r q d 线 线   l i n u x s u b s y s _ i n i t c a l l g r e p n e t _ d e v _ i n i t  
C P U p o l l o p e n _ s o f t i r q N E T _ T X _ S O F T I R Q n e t _ t x _ a c t i o n N E T _ R X _ S O F T I R Q n e t _ r x _ a c t i o n k s o f t i r q d 线 使   i p t c p u d p i p _ r c v ( ) , t c p _ v 4 _ r c v ( ) u d p _ r c v ( ) L i n u x f s _ i n i t c a l l s u b s y s _ i n i t c a l l f s _ i n i t c a l l i n e t _ i n i t i n e t _ i n i t i n e t _ p r o t o s p t y p e _ b a s e s o f t n e t _ d a t a p o l l _ l i s t o p e n _ s o f t i r q s o f t i r q _ v e c / / f i l e :   n e t / i p v 4 / a f _ i n e t . c s t a t i c   s t r u c t   p a c k e t _ t y p e   i p _ p a c k e t _ t y p e   _ _ r e a d _ m o s t l y   =   {         . t y p e   =   c p u _ t o _ b e 1 6 ( E T H _ P _ I P ) ,         . f u n c   =   i p _ r c v , } ; s t a t i c   c o n s t   s t r u c t   n e t _ p r o t o c o l   u d p _ p r o t o c o l   =   {         . h a n d l e r   =     u d p _ r c v ,         . e r r _ h a n d l e r   =     u d p _ e r r ,         . n o _ p o l i c y   =         1 ,         . n e t n s _ o k   =   1 , } ; s t a t i c   c o n s t   s t r u c t   n e t _ p r o t o c o l   t c p _ p r o t o c o l   =   {         . e a r l y _ d e m u x         =       t c p _ v 4 _ e a r l y _ d e m u x ,         . h a n d l e r         =       t c p _ v 4 _ r c v ,         . e r r _ h a n d l e r         =       t c p _ v 4 _ e r r ,         . n o _ p o l i c y     =       1 ,         . n e t n s _ o k       =       1 , } ;
i p _ r c v u d p _ r c v i p _ r c v n e t f i l t e r i p t a b l e   n e t f i l t e r     i p t a b l e s   u d p _ r c v s o c k e t n e t . c o r e . r m e m _ m a x n e t . c o r e . r m e m _ d e f a u l t i n e t _ i n i t 使   m o d u l e _ i n i t   i g b d r i v e r s / n e t / e t h e r n e t / i n t e l / i g b / i g b _ m a i n . c p c i _ r e g i s t e r _ d r i v e r L i n u x i g b i g b _ d r i v e r _ n a m e i g b _ p r o b e p r o b e i g b _ d r i v e r p r o b e i g b _ p r o b e p r o b e r e a d y i g b i g b _ p r o b e d r i v e r s / n e t / e t h e r n e t / i n t e l / i g b / i g b _ m a i n . c   5 e t h t o o l   e t h t o o l   i g b d r i v e r s / n e t / e t h e r n e t / i n t e l / i g b / i g b _ e t h t o o l . c e t h t o o l R X   e t h t o o l e t h t o o l 6 i g b _ n e t d e v _ o p s i g b _ o p e n 7 i g b _ p r o b e i g b _ a l l o c _ q _ v e c t o r N A P I p o l l i g b i g b _ p o l l , / / f i l e :   d r i v e r s / n e t / e t h e r n e t / i n t e l / i g b / i g b _ m a i n . . . . . . . s t a t i c   c o n s t   s t r u c t   n e t _ d e v i c e _ o p s   i g b _ n e t d e v _ o p s   =   {     . n d o _ o p e n                               =   i g b _ o p e n ,     . n d o _ s t o p                               =   i g b _ c l o s e ,     . n d o _ s t a r t _ x m i t                   =   i g b _ x m i t _ f r a m e ,     . n d o _ g e t _ s t a t s 6 4                 =   i g b _ g e t _ s t a t s 6 4 ,     . n d o _ s e t _ r x _ m o d e                 =   i g b _ s e t _ r x _ m o d e ,     . n d o _ s e t _ m a c _ a d d r e s s         =   i g b _ s e t _ m a c ,     . n d o _ c h a n g e _ m t u                   =   i g b _ c h a n g e _ m t u ,     . n d o _ d o _ i o c t l                       =   i g b _ i o c t l , . . . . . . } s t a t i c   i n t   i g b _ a l l o c _ q _ v e c t o r ( s t r u c t   i g b _ a d a p t e r   * a d a p t e r ,                                     i n t   v _ c o u n t ,   i n t   v _ i d x ,                                     i n t   t x r _ c o u n t ,   i n t   t x r _ i d x ,                                     i n t   r x r _ c o u n t ,   i n t   r x r _ i d x ) {         . . . . . .         / *   i n i t i a l i z e   N A P I   * /         n e t i f _ n a p i _ a d d ( a d a p t e r - > n e t d e v ,   & q _ v e c t o r - > n a p i ,                               i g b _ p o l l ,   6 4 ) ; }
  s t r u c t u r e   n e t _ d e v i c e _ o p s   m a c     i f c o n f i g   e t h 0   u p n e t _ d e v i c e _ o p s     i g b _ o p e n   _ _ i g b _ o p e n i g b _ s e t u p _ a l l _ t x _ r e s o u r c e s , i g b _ s e t u p _ a l l _ r x _ r e s o u r c e s i g b _ s e t u p _ a l l _ r x _ r e s o u r c e s R i n g B u f f e r R x R x   T x     e t h t o o l   i g b _ r e q u e s t _ i r q :   _ _ i g b _ o p e n   = >   i g b _ r e q u e s t _ i r q   = >   i g b _ r e q u e s t _ m s i x ,   i g b _ r e q u e s t _ m s i x i g b _ m s i x _ r i n g d r i v e r s / n e t / e t h e r n e t / i n t e l / i g b / i g b _ m a i n . c m s i x   R X   M S I - X   C P U   i r q b a l a n c e     / p r o c / i r q / I R Q _ N U M B E R / s m p _ a f f i n i t y C P U L i n u x 线 F I F O D D R 3 C P U D M A O S I } / / f i l e :   d r i v e r s / n e t / e t h e r n e t / i n t e l / i g b / i g b _ m a i n . c s t a t i c   i n t   _ _ i g b _ o p e n ( s t r u c t   n e t _ d e v i c e   * n e t d e v ,   b o o l   r e s u m i n g ) {         / *   a l l o c a t e   t r a n s m i t   d e s c r i p t o r s   * /         e r r   =   i g b _ s e t u p _ a l l _ t x _ r e s o u r c e s ( a d a p t e r ) ;         / *   a l l o c a t e   r e c e i v e   d e s c r i p t o r s   * /         e r r   =   i g b _ s e t u p _ a l l _ r x _ r e s o u r c e s ( a d a p t e r ) ;         / *     * /         e r r   =   i g b _ r e q u e s t _ i r q ( a d a p t e r ) ;         i f   ( e r r )                 g o t o   e r r _ r e q _ i r q ;         / *   N A P I   * /         f o r   ( i   =   0 ;   i   <   a d a p t e r - > n u m _ q _ v e c t o r s ;   i + + )                 n a p i _ e n a b l e ( & ( a d a p t e r - > q _ v e c t o r [ i ] - > n a p i ) ) ;         . . . . . . } s t a t i c   i n t   i g b _ r e q u e s t _ i r q ( s t r u c t   i g b _ a d a p t e r   * a d a p t e r ) {         i f   ( a d a p t e r - > m s i x _ e n t r i e s )   {                 e r r   =   i g b _ r e q u e s t _ m s i x ( a d a p t e r ) ;                 i f   ( ! e r r )                         g o t o   r e q u e s t _ d o n e ;                 . . . . . .         } } s t a t i c   i n t   i g b _ r e q u e s t _ m s i x ( s t r u c t   i g b _ a d a p t e r   * a d a p t e r ) {         . . . . . .         f o r   ( i   =   0 ;   i   <   a d a p t e r - > n u m _ q _ v e c t o r s ;   i + + )   {                 . . .                 e r r   =   r e q u e s t _ i r q ( a d a p t e r - > m s i x _ e n t r i e s [ v e c t o r ] . v e c t o r ,                                     i g b _ m s i x _ r i n g ,   0 ,   q _ v e c t o r - > n a m e ,         }  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则