Below, `list` is a representative sample of my list, which contains lists of integers.  I would like to be able to input:

    list = {{1, 2, 3}, {3, 2, 1}, {2, 1, 3}};
    f[list]

and obtain the output:

    {{1, 2, 3}, {2, 1, 3}}

In other words, `{3, 2, 1}` is considered to be the same as `{1, 2, 3}`, since in reverse it is exactly `{1, 2, 3}`.  However, `{2, 1, 3}` is **not** considered to be the same as either `{1, 2, 3}` or `{3, 2, 1}`, because it does not match these lists in forward or in reverse.

What function `f` can I use to accomplish this?

I tried this:

    DeleteDuplicates[list, MemberQ[list, #] || MemberQ[Reverse /@ list, #] &]

but it does not work, although I'm not sure why.

**ADDENDUM**

Now suppose I want to input:

    list = {{1, 2, 3}, {3, 2, 1}, {2, 1, 3}, {1, 2, 3}};

and obtain:

    list = {{1, 2, 3}, {2, 1, 3}};

where the "second" `{1, 2, 3}` is removed as a "normal" duplicate.  How can I do this?  I could do:

    DeleteDuplicates[DeleteDuplicates[list, (#1 == Reverse[#2] &)]]

but is there an easier way?