package tcpip
- Overview
- No Docs
You can search for identifiers within the package.
in-package search v0.2.0
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=96b6aeafa35f143f7275d1becb6d639472adf3680b8180416de765b6581c466d
    
    
  sha512=3f873c986de5c58df72db2953c6b2a6319963dbbbd0781b55c2878fd1eaa081ebb7cecbee595db7cb3680a6f438904f98cb69ca17e70c7a6d2d1f61277e929bd
    
    
  doc/tcpip.ipv6/Ndpv6/index.html
Module Ndpv6Source
val local : 
  handle_ra:bool ->
  now:time ->
  random:(int -> Cstruct.t) ->
  Macaddr.t ->
  context * (Macaddr.t * int * (buffer -> int)) listlocal ~handle_ra ~now ~random mac is a pair ctx, outs where ctx is a local IPv6 context associated to the hardware address mac. outs is a list of ethif packets to be sent.
val add_ip : 
  now:time ->
  context ->
  ipaddr ->
  context * (Macaddr.t * int * (buffer -> int)) listadd_ip ~now ctx ip is ctx', outs where ctx' is ctx updated with a new local ip and outs is a list of ethif packets to be sent.
select_source ctx ip returns the ip that should be put in the source field of a packet destined to ip.
val handle : 
  now:time ->
  random:(int -> Cstruct.t) ->
  context ->
  buffer ->
  context * (Macaddr.t * int * (buffer -> int)) list * event listhandle ~now ~random ctx buf handles an incoming ipv6 packet. It returns ctx', bufs, evs where ctx' is the updated context, bufs is a list of packets to be sent and evs is a list of packets to be passed to the higher layers (udp, tcp, etc) for further processing.
val send : 
  now:time ->
  context ->
  ?src:ipaddr ->
  ipaddr ->
  Tcpip.Ip.proto ->
  int ->
  (buffer -> buffer -> int) ->
  context * (Macaddr.t * int * (buffer -> int)) listsend ~now ctx ?src dst proto size fillf starts route resolution and assembles an ipv6 packet of size for sending with header and body passed to fillf. It returns a pair ctx', dst_size_fills where ctx' is the updated context and dst, size, fillf is a list of packets to be sent, specified by destination, their size, and fill function.
tick ~now ctx should be called periodically (every 1s is good). It returns ctx', bufs where ctx' is the updated context and bufs is a list of packets to be sent.
add_prefix ~now ctx pfx adds a local prefix to ctx.
get_prefix ctx returns the list of local prefixes known to ctx.
add_routers ~now ctx ips adds a list of gateways to ctx to be used for routing.