extra layer below inet layer.

4 messages, 3 authors, 2007-06-07 · open the first message on its own page

extra layer below inet layer.

From: Tej Parkash <hidden>
Date: 2007-06-07 04:40:45

hi

i just want to have something like tcp layer sitting below inet layer.
so that i can directly offload everything to NIC
and i want it to be placed dynamically. so depending on the nic i can
offload the feature or can make it normal flow.
i.e. both layer should exist and normal functionality should not break.

this code is in af_inet.c

static struct inet_protosw inetsw_array[] =
{
       {
               .type =       SOCK_STREAM,
               .protocol =   IPPROTO_TCP,
               .prot =       &tcp_prot,
               .ops =        &inet_stream_ops,
               .capability = -1,
               .no_check =   0,
               .flags =      INET_PROTOSW_PERMANENT |
                             INET_PROTOSW_ICSK,
       },

       {
               .type =       SOCK_DGRAM,
               .protocol =   IPPROTO_UDP,
               .prot =       &udp_prot,
               .ops =        &inet_dgram_ops,
               .capability = -1,
               .no_check =   UDP_CSUM_DEFAULT,
               .flags =      INET_PROTOSW_PERMANENT,
      },


      {
              .type =       SOCK_RAW,
              .protocol =   IPPROTO_IP,        /* wild card */
              .prot =       &raw_prot,
              .ops =        &inet_sockraw_ops,
              .capability = CAP_NET_RAW,
              .no_check =   UDP_CSUM_DEFAULT,
              .flags =      INET_PROTOSW_REUSE,
      }
};

i was just going through the code i found that if i can regsiter above
kind of registration dynamically i will be able to do that.
i have tried to do that but since normal tcp registered this at boot
up time i am not able to unregister this dynamically

so is it possible to unregister tcp and register my protocol dynamically.

thanks
TEJ

Re: extra layer below inet layer.

From: Stephen Hemminger <hidden>
Date: 2007-06-07 05:25:21

On Thu, 7 Jun 2007 10:10:44 +0530
"Tej Parkash" [off-list ref] wrote:
hi

i just want to have something like tcp layer sitting below inet layer.
so that i can directly offload everything to NIC
and i want it to be placed dynamically. so depending on the nic i can
offload the feature or can make it normal flow.
i.e. both layer should exist and normal functionality should not break.
NIC protocol offloading is a contentious subject since it bypasses
all the security and restricts usefulness of the device for VLAN's,
bonding, bridging, etc.


-- 
Stephen Hemminger [off-list ref]

Re: extra layer below inet layer.

From: kalash nainwal <hidden>
Date: 2007-06-07 10:30:35

On 6/7/07, Tej Parkash [off-list ref] wrote:
hi

i just want to have something like tcp layer sitting below inet layer.
so that i can directly offload everything to NIC
and i want it to be placed dynamically. so depending on the nic i can
offload the feature or can make it normal flow.
i.e. both layer should exist and normal functionality should not break.

this code is in af_inet.c

static struct inet_protosw inetsw_array[] =
{
       {
               .type =       SOCK_STREAM,
               .protocol =   IPPROTO_TCP,
               .prot =       &tcp_prot,
               .ops =        &inet_stream_ops,
               .capability = -1,
               .no_check =   0,
               .flags =      INET_PROTOSW_PERMANENT |
                             INET_PROTOSW_ICSK,
       },

       {
               .type =       SOCK_DGRAM,
               .protocol =   IPPROTO_UDP,
               .prot =       &udp_prot,
               .ops =        &inet_dgram_ops,
               .capability = -1,
               .no_check =   UDP_CSUM_DEFAULT,
               .flags =      INET_PROTOSW_PERMANENT,
      },


      {
              .type =       SOCK_RAW,
              .protocol =   IPPROTO_IP,        /* wild card */
              .prot =       &raw_prot,
              .ops =        &inet_sockraw_ops,
              .capability = CAP_NET_RAW,
              .no_check =   UDP_CSUM_DEFAULT,
              .flags =      INET_PROTOSW_REUSE,
      }
};

i was just going through the code i found that if i can regsiter above
kind of registration dynamically i will be able to do that.
i have tried to do that but since normal tcp registered this at boot
up time i am not able to unregister this dynamically

so is it possible to unregister tcp and register my protocol dynamically.
inet_unregister_protosw()/inet_register_protosw().

-Kalash

Re: extra layer below inet layer.

From: kalash nainwal <hidden>
Date: 2007-06-07 10:33:10

quoted
so is it possible to unregister tcp and register my protocol dynamically.
inet_unregister_protosw()/inet_register_protosw().
oops...can't unregister tcp (permanent protocol).
-Kalash
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help