code: func NewChain(name string, table Table, hairpinMode bool) (*ChainInfo, error) {
  	c := &ChainInfo{
  		Name:        name,
  		Table:       table,
  		HairpinMode: hairpinMode,
  	}
  	if string(c.Table) == "" {
  		c.Table = Filter
  	}
  
  	// Add chain if it doesn't exist
  	if _, err := Raw("-t", string(c.Table), "-n", "-L", c.Name); err != nil {
  		if output, err := Raw("-t", string(c.Table), "-N", c.Name); err != nil {
  			return nil, err
  		} else if len(output) != 0 {
  			return nil, fmt.Errorf("Could not create %s/%s chain: %s", c.Table, c.Name, output)
  		}
  	}
  	return c, nil
  }
docs: // NewChain adds a new chain to ip table.