code: func (h *Handle) ConntrackDeleteFilter(table ConntrackTableType, family InetFamily, filter CustomConntrackFilter) (uint, error) {
  	res, err := h.dumpConntrackTable(table, family)
  	if err != nil {
  		return 0, err
  	}
  
  	var matched uint
  	for _, dataRaw := range res {
  		flow := parseRawData(dataRaw)
  		if match := filter.MatchConntrackFlow(flow); match {
  			req2 := h.newConntrackRequest(table, family, nl.IPCTNL_MSG_CT_DELETE, unix.NLM_F_ACK)
  			// skip the first 4 byte that are the netfilter header, the newConntrackRequest is adding it already
  			req2.AddRawData(dataRaw[4:])
  			req2.Execute(unix.NETLINK_NETFILTER, 0)
  			matched++
  		}
  	}
  
  	return matched, nil
  }
docs: // ConntrackDeleteFilter deletes entries on the specified table on the base of the filter using the netlink handle passed
  // conntrack -D [table] parameters         Delete conntrack or expectation