func getIPPkt(ipSrc, ipDst string, portNo uint32) *ofctrl.PacketIn { p := new(ofctrl.PacketIn) p.Header = openflow13.NewOfp13Header() p.Header.Type = openflow13.Type_PacketIn p.BufferId = 0xffffffff p.Reason = 0 p.TableId = 0 p.Cookie = 0 p.Match = *openflow13.NewMatch() inportField := openflow13.NewInPortField(portNo) m := &p.Match m.AddField(*inportField) ip := protocol.NewIPv4() ip.Version = 4 ip.IHL = 5 ip.DSCP = 0 ip.ECN = 0 ip.Length = 20 ip.Protocol = ofctrl.IP_PROTO_TCP ip.NWSrc = net.ParseIP(ipSrc) ip.NWDst = net.ParseIP(ipDst) eth := protocol.NewEthernet() eth.Ethertype = protocol.IPv4_MSG eth.Data = ip p.TableId = SRV_PROXY_DNAT_TBL_ID p.Data = *eth return p }
func getMPReq() *openflow13.MultipartRequest { mp := &openflow13.MultipartRequest{} mp.Type = openflow13.MultipartType_Flow mp.Header = openflow13.NewOfp13Header() mp.Header.Type = openflow13.Type_MultiPartRequest return mp }