On 14 June 2016 at 17:02, Brian Turek <brian.tu...@gmail.com> wrote:

> I have no idea why my patch wouldn't be working, `git diff -C -M` is
> making the diff for me (if the below doesn't work again, I'll have to
> investigate).
>

From this email, if you had to apply the patch on a clean openvswitch
master branch cloned on a linux host, how would you apply?


>
> Regardless, I really would like to have the tag option be a part of the
> initial add-port call instead of an additional set-port call.  If malformed
> input is a concern, how about something like:
>


> diff --git a/utilities/ovs-docker b/utilities/ovs-docker
> index 43cea54..edd48d2 100755
> --- a/utilities/ovs-docker
> +++ b/utilities/ovs-docker
> @@ -90,6 +90,16 @@ add_port () {
>                  MTU=`expr X"$1" : 'X[^=]*=\(.*\)'`
>                  shift
>                  ;;
> +            --vlan=*)
> +                if [ "$1" -eq "$1" ] 2>/dev/null
>
The above will always thrown an error as you are likely testing [
"--vlan=2"  -eq "--vlan=2" ]. But I think I know what you are trying to do
and it should be okay. Please test and resend via "git send-email" with a
Signed-off-by.


+                then
> +                    TAG="tag=$(expr X"$1" : 'X[^=]*=\(.*\)')"
>
+                else
> +                    echo >&2 "$UTIL add-port: vlan must be an integer"
> +                    exit 1
> +                fi
> +                shift
> +                ;;
>              *)
>                  echo >&2 "$UTIL add-port: unknown option \"$1\""
>                  exit 1
> @@ -126,7 +136,7 @@ add_port () {
>
>      # Add one end of veth to OVS bridge.
>      if ovs_vsctl --may-exist add-port "$BRIDGE" "${PORTNAME}_l" \
> -       -- set interface "${PORTNAME}_l" \
> +       $TAG -- set interface "${PORTNAME}_l" \
>         external_ids:container_id="$CONTAINER" \
>         external_ids:container_iface="$INTERFACE"; then :; else
>          echo >&2 "$UTIL: Failed to add "${PORTNAME}_l" port to bridge
> $BRIDGE"
> @@ -224,15 +234,15 @@ usage: ${UTIL} COMMAND
>  Commands:
>    add-port BRIDGE INTERFACE CONTAINER [--ipaddress="ADDRESS"]
>                      [--gateway=GATEWAY] [--macaddress="MACADDRESS"]
> -                    [--mtu=MTU]
> +                    [--mtu=MTU] [--vlan=TAG]
>                      Adds INTERFACE inside CONTAINER and connects it as a
> port
>                      in Open vSwitch BRIDGE. Optionally, sets ADDRESS on
>                      INTERFACE. ADDRESS can include a '/' to represent
> network
> -                    prefix length. Optionally, sets a GATEWAY, MACADDRESS
> -                    and MTU.  e.g.:
> +                    prefix length. Optionally, sets a GATEWAY, MACADDRESS,
> +                    MTU, and VLAN.  e.g.:
>                      ${UTIL} add-port br-int eth1 c474a0e2830e
>                      --ipaddress=192.168.1.2/24 --gateway=192.168.1.1
> -                    --macaddress="a2:c3:0d:49:7f:f8" --mtu=1450
> +                    --macaddress="a2:c3:0d:49:7f:f8" --mtu=1450 --vlan=10
>    del-port BRIDGE INTERFACE CONTAINER
>                      Deletes INTERFACE inside CONTAINER and removes its
>                      connection to Open vSwitch BRIDGE. e.g.:
>
> On Mon, Jun 13, 2016 at 11:25 AM, Guru Shetty <g...@ovn.org> wrote:
>
>>
>>
>> On 11 June 2016 at 05:28, Brian Turek <brian.tu...@gmail.com> wrote:
>>
>>> Signed-off-by: Brian Turek <brian.tu...@gmail.com>
>>>
>>
>> Thank you for your contribution. How did you send this patch? I couldn't
>> apply it on my local tree using 'git am'. Sending it via 'git send-email'
>> usually gets it right.
>>
>> The change in the patch itself is not much, so I took a look. The thing
>> that concerns me a bit with this patch is that I could potentially run
>> commands of the form:
>>
>> utilities/ovs-docker add-port br-int eth1 f5f314682193 --vlan="2 -- set
>> bridge br-int external_ids:hello=hi"
>>
>> We could avoid it by doing something like this instead:
>> diff --git a/utilities/ovs-docker b/utilities/ovs-docker
>> index 43cea54..82c0343 100755
>> --- a/utilities/ovs-docker
>> +++ b/utilities/ovs-docker
>> @@ -90,6 +90,10 @@ add_port () {
>>                  MTU=`expr X"$1" : 'X[^=]*=\(.*\)'`
>>                  shift
>>                  ;;
>> +            --vlan=*)
>> +                TAG=`expr X"$1" : 'X[^=]*=\(.*\)'`
>> +                shift
>> +                ;;
>>              *)
>>                  echo >&2 "$UTIL add-port: unknown option \"$1\""
>>                  exit 1
>> @@ -134,6 +138,15 @@ add_port () {
>>          exit 1
>>      fi
>>
>> +    if [ -n "$TAG" ]; then
>> +        if ovs_vsctl set port "${PORTNAME}_l" tag="$TAG"; then :; else
>> +            echo >&2 "$UTIL: Failed to set vlan $tag"
>> +            ovs_vsctl del-port "${PORTNAME}_l"
>> +            ip link delete "${PORTNAME}_l"
>> +            exit 1
>> +        fi
>> +    fi
>> +
>>      ip link set "${PORTNAME}_l" up
>>
>>
>>
>>
>>
>>>
>>> diff --git a/utilities/ovs-docker b/utilities/ovs-docker
>>> index 43cea54..98892b6 100755
>>> --- a/utilities/ovs-docker
>>> +++ b/utilities/ovs-docker
>>> @@ -90,6 +90,10 @@ add_port () {
>>>                  MTU=`expr X"$1" : 'X[^=]*=\(.*\)'`
>>>                  shift
>>>                  ;;
>>> +            --vlan=*)
>>> +                TAG="tag=$(expr X"$1" : 'X[^=]*=\(.*\)')"
>>> +                shift
>>> +                ;;
>>>              *)
>>>                  echo >&2 "$UTIL add-port: unknown option \"$1\""
>>>                  exit 1
>>> @@ -126,7 +130,7 @@ add_port () {
>>>
>>>      # Add one end of veth to OVS bridge.
>>>      if ovs_vsctl --may-exist add-port "$BRIDGE" "${PORTNAME}_l" \
>>> -       -- set interface "${PORTNAME}_l" \
>>> +       $TAG -- set interface "${PORTNAME}_l" \
>>>         external_ids:container_id="$CONTAINER" \
>>>         external_ids:container_iface="$INTERFACE"; then :; else
>>>          echo >&2 "$UTIL: Failed to add "${PORTNAME}_l" port to bridge
>>> $BRIDGE"
>>> @@ -224,15 +228,15 @@ usage: ${UTIL} COMMAND
>>>  Commands:
>>>    add-port BRIDGE INTERFACE CONTAINER [--ipaddress="ADDRESS"]
>>>                      [--gateway=GATEWAY] [--macaddress="MACADDRESS"]
>>> -                    [--mtu=MTU]
>>> +                    [--mtu=MTU] [--vlan=VLAN]
>>>                      Adds INTERFACE inside CONTAINER and connects it as a
>>> port
>>>                      in Open vSwitch BRIDGE. Optionally, sets ADDRESS on
>>>                      INTERFACE. ADDRESS can include a '/' to represent
>>> network
>>> -                    prefix length. Optionally, sets a GATEWAY,
>>> MACADDRESS
>>> -                    and MTU.  e.g.:
>>> +                    prefix length. Optionally, sets a GATEWAY,
>>> MACADDRESS,
>>> +                    MTU, and VLAN.  e.g.:
>>>                      ${UTIL} add-port br-int eth1 c474a0e2830e
>>>                      --ipaddress=192.168.1.2/24 --gateway=192.168.1.1
>>> -                    --macaddress="a2:c3:0d:49:7f:f8" --mtu=1450
>>> +                    --macaddress="a2:c3:0d:49:7f:f8" --mtu=1450
>>> --vlan=10
>>>    del-port BRIDGE INTERFACE CONTAINER
>>>                      Deletes INTERFACE inside CONTAINER and removes its
>>>                      connection to Open vSwitch BRIDGE. e.g.:
>>> _______________________________________________
>>> dev mailing list
>>> dev@openvswitch.org
>>> http://openvswitch.org/mailman/listinfo/dev
>>>
>>
>>
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to