def impl(self): from_net = net.FromNet() to_net = net.ToNet() from_net.nothing >> library.Drop() from_net >> Reply() >> to_net
def impl(self): from_net = net.FromNet() free = net.FromNetFree() from_net.nothing >> library.Drop() from_net >> Reply() >> free
def impl(self): from_net = net.FromNet('from_net', configure=[32]) from_net_free = net.FromNetFree('from_net_free') to_net = net.ToNet('to_net', configure=['from_net', 32]) classifier = main.Classifer() check_packet = main.CheckPacket() hton1 = net.HTON(configure=['iokvs_message']) hton2 = net.HTON(configure=['iokvs_message']) prepare_header = main.PrepareHeader() display = main.PrintMsg() drop = main.Drop() save_id = main.SaveID() self.core_id >> save_id # from_net from_net >> hton1 >> check_packet >> main.SaveState() \ >> main.GetKey() >> main.JenkinsHash() >> classifier from_net.nothing >> drop # get hash_get = main.HashGet() get_response = main.PrepareGetResp() classifier.out_get >> hash_get >> main.SizeGetResp( ) >> main.SizePktBuff() >> get_response >> prepare_header get_response >> main.Unref() >> main.Drop() # get (null) hash_get.null >> main.SizeGetNullResp() >> main.SizePktBuff( ) >> main.PrepareGetNullResp() >> prepare_header # set get_item = main.GetItemSpec() set_response = main.PrepareSetResp( configure=['PROTOCOL_BINARY_RESPONSE_SUCCESS']) classifier.out_set >> get_item >> main.HashPut() >> main.Unref() >> main.SizeSetResp() \ >> main.SizePktBuff() >> set_response >> prepare_header # set (unseccessful) set_reponse_fail = main.PrepareSetResp( configure=['PROTOCOL_BINARY_RESPONSE_ENOMEM']) get_item.nothing >> main.SizeSetResp() >> main.SizePktBuff( ) >> set_reponse_fail >> prepare_header # exception arp = main.HandleArp() check_packet.slowpath >> arp >> to_net arp.drop >> from_net_free check_packet.drop >> from_net_free # send prepare_header >> display >> hton2 >> to_net # clean log clean_log = main.CleanLog() run_order(save_id, from_net) run_order([to_net, from_net_free, drop], clean_log)
def impl(self): from_net = net.FromNet('from_net') from_net_free = net.FromNetFree('from_net_free') to_net = net.ToNet('to_net', configure=['from_net']) #from_net = main.FromNet() #from_net_free = main.FromNetFree() #to_net = main.ToNet() classifier = main.Classifer() check_packet = main.CheckPacket() hton1 = net.HTON(configure=['iokvs_message']) hton2 = net.HTON(configure=['iokvs_message']) # from_net from_net.nothing >> main.Drop() from_net.out >> hton1 >> check_packet check_packet.out >> main.SaveState() >> main.GetKey( ) >> main.JenkinsHash() >> main.GetCore() >> classifier # get classifier.out_get >> rx_enq.inp[0] # set get_item = main.GetItem() classifier.out_set >> get_item >> rx_enq.inp[1] # set (unseccessful) set_reponse_fail = main.PrepareSetResp( configure=['PROTOCOL_BINARY_RESPONSE_ENOMEM']) get_item.nothing >> main.SizePktBuffSetResp() >> set_reponse_fail >> main.PrepareHeader() \ >> main.PrintMsg() >> hton2 >> to_net # full filter_full = main.FilterFull() get_item.out >> filter_full get_item.nothing >> filter_full filter_full >> log_in_enq.inp[0] # exception arp = main.HandleArp() check_packet.slowpath >> arp >> to_net # free from_net arp.drop >> from_net_free check_packet.drop >> from_net_free rx_enq.done >> main.GetPktBuff() >> from_net_free
def impl(self): from_net = net.FromNet(configure=[64]) from_net_free = net.FromNetFree() class nic_rx(Segment): def impl_basic(self): # Notice that it's okay to connect non-empty port to an empty port. rx_enq = rx_enq_creator() from_net >> Save() >> Pkt2Tuple() >> GetCore( ) >> rx_enq >> GetRxBuf() >> from_net_free from_net.nothing >> Drop() def impl(self): network_alloc = net.NetAlloc() to_net = net.ToNet(configure=["alloc", 32]) classifier = Classifier() rx_enq = rx_enq_creator() tx_buf = GetTxBuf( configure=['sizeof(struct pkt_dccp_ack_headers)']) size_ack = SizePkt( configure=['sizeof(struct pkt_dccp_ack_headers)']) rx_buf = GetRxBuf() from_net.nothing >> Drop() from_net >> classifier # CASE 1: not ack # send ack classifier.pkt >> size_ack >> network_alloc >> GetBothPkts( ) >> DccpSendAck() >> tx_buf >> to_net # process pkt2tuple = Pkt2Tuple() classifier.pkt >> pkt2tuple >> GetCore() >> rx_enq >> rx_buf # CASE 2: ack classifier.ack >> DccpRecvAck() >> rx_buf # Exception classifier.drop >> rx_buf network_alloc.oom >> Drop() rx_buf >> from_net_free nic_rx('nic_rx', process='dpdk', cores=range(n_nic_rx))