The entire patch set:

Reviewed-by: Petri Savolainen <[email protected]>

> -----Original Message-----
> From: [email protected] [mailto:lng-odp-
> [email protected]] On Behalf Of ext Bill Fischofer
> Sent: Tuesday, November 18, 2014 12:59 AM
> To: [email protected]
> Subject: [lng-odp] [PATCH 2/2] Uplevel odp_packet_flags.h and
> implementation to ODP v1.0 level
> 
> This patch implements the specified odp_packet_flags.h API name changes
> for ODP v1.0.
> 
> Signed-off-by: Bill Fischofer <[email protected]>
> ---
>  .../linux-generic/include/api/odp_packet_flags.h   | 70 +++++++++++------
> -----
>  platform/linux-generic/odp_packet_flags.c          | 70 +++++++++++------
> -----
>  2 files changed, 70 insertions(+), 70 deletions(-)
> 
> diff --git a/platform/linux-generic/include/api/odp_packet_flags.h
> b/platform/linux-generic/include/api/odp_packet_flags.h
> index ccaa04f..6e5d394 100644
> --- a/platform/linux-generic/include/api/odp_packet_flags.h
> +++ b/platform/linux-generic/include/api/odp_packet_flags.h
> @@ -50,7 +50,7 @@ int odp_packet_errflag_frame_len(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains a valid & known L2 header, 0 otherwise
>   */
> -int odp_packet_inflag_l2(odp_packet_t pkt);
> +int odp_packet_has_l2(odp_packet_t pkt);
> 
>  /**
>   * Check for L3 header, e.g. IPv4, IPv6
> @@ -58,7 +58,7 @@ int odp_packet_inflag_l2(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains a valid & known L3 header, 0 otherwise
>   */
> -int odp_packet_inflag_l3(odp_packet_t pkt);
> +int odp_packet_has_l3(odp_packet_t pkt);
> 
>  /**
>   * Check for L4 header, e.g. UDP, TCP, SCTP (also ICMP)
> @@ -66,7 +66,7 @@ int odp_packet_inflag_l3(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains a valid & known L4 header, 0 otherwise
>   */
> -int odp_packet_inflag_l4(odp_packet_t pkt);
> +int odp_packet_has_l4(odp_packet_t pkt);
> 
>  /**
>   * Check for Ethernet header
> @@ -74,7 +74,7 @@ int odp_packet_inflag_l4(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains a valid eth header, 0 otherwise
>   */
> -int odp_packet_inflag_eth(odp_packet_t pkt);
> +int odp_packet_has_eth(odp_packet_t pkt);
> 
>  /**
>   * Check for jumbo frame
> @@ -82,7 +82,7 @@ int odp_packet_inflag_eth(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains jumbo frame, 0 otherwise
>   */
> -int odp_packet_inflag_jumbo(odp_packet_t pkt);
> +int odp_packet_has_jumbo(odp_packet_t pkt);
> 
>  /**
>   * Check for VLAN
> @@ -90,7 +90,7 @@ int odp_packet_inflag_jumbo(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains a VLAN header, 0 otherwise
>   */
> -int odp_packet_inflag_vlan(odp_packet_t pkt);
> +int odp_packet_has_vlan(odp_packet_t pkt);
> 
>  /**
>   * Check for VLAN QinQ (stacked VLAN)
> @@ -98,7 +98,7 @@ int odp_packet_inflag_vlan(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains a VLAN QinQ header, 0 otherwise
>   */
> -int odp_packet_inflag_vlan_qinq(odp_packet_t pkt);
> +int odp_packet_has_vlan_qinq(odp_packet_t pkt);
> 
>  /**
>   * Check for ARP
> @@ -106,7 +106,7 @@ int odp_packet_inflag_vlan_qinq(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains an ARP header, 0 otherwise
>   */
> -int odp_packet_inflag_arp(odp_packet_t pkt);
> +int odp_packet_has_arp(odp_packet_t pkt);
> 
>  /**
>   * Check for IPv4
> @@ -114,7 +114,7 @@ int odp_packet_inflag_arp(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains an IPv4 header, 0 otherwise
>   */
> -int odp_packet_inflag_ipv4(odp_packet_t pkt);
> +int odp_packet_has_ipv4(odp_packet_t pkt);
> 
>  /**
>   * Check for IPv6
> @@ -122,7 +122,7 @@ int odp_packet_inflag_ipv4(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains an IPv6 header, 0 otherwise
>   */
> -int odp_packet_inflag_ipv6(odp_packet_t pkt);
> +int odp_packet_has_ipv6(odp_packet_t pkt);
> 
>  /**
>   * Check for IP fragment
> @@ -130,7 +130,7 @@ int odp_packet_inflag_ipv6(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet is an IP fragment, 0 otherwise
>   */
> -int odp_packet_inflag_ipfrag(odp_packet_t pkt);
> +int odp_packet_has_ipfrag(odp_packet_t pkt);
> 
>  /**
>   * Check for IP options
> @@ -138,7 +138,7 @@ int odp_packet_inflag_ipfrag(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains IP options, 0 otherwise
>   */
> -int odp_packet_inflag_ipopt(odp_packet_t pkt);
> +int odp_packet_has_ipopt(odp_packet_t pkt);
> 
>  /**
>   * Check for IPSec
> @@ -146,7 +146,7 @@ int odp_packet_inflag_ipopt(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet requires IPSec processing, 0 otherwise
>   */
> -int odp_packet_inflag_ipsec(odp_packet_t pkt);
> +int odp_packet_has_ipsec(odp_packet_t pkt);
> 
>  /**
>   * Check for UDP
> @@ -154,7 +154,7 @@ int odp_packet_inflag_ipsec(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains a UDP header, 0 otherwise
>   */
> -int odp_packet_inflag_udp(odp_packet_t pkt);
> +int odp_packet_has_udp(odp_packet_t pkt);
> 
>  /**
>   * Check for TCP
> @@ -162,7 +162,7 @@ int odp_packet_inflag_udp(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains a TCP header, 0 otherwise
>   */
> -int odp_packet_inflag_tcp(odp_packet_t pkt);
> +int odp_packet_has_tcp(odp_packet_t pkt);
> 
>  /**
>   * Check for SCTP
> @@ -170,7 +170,7 @@ int odp_packet_inflag_tcp(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains an SCTP header, 0 otherwise
>   */
> -int odp_packet_inflag_sctp(odp_packet_t pkt);
> +int odp_packet_has_sctp(odp_packet_t pkt);
> 
>  /**
>   * Check for ICMP
> @@ -178,14 +178,14 @@ int odp_packet_inflag_sctp(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @return 1 if packet contains an ICMP header, 0 otherwise
>   */
> -int odp_packet_inflag_icmp(odp_packet_t pkt);
> +int odp_packet_has_icmp(odp_packet_t pkt);
> 
>  /**
>   * Request L4 checksum calculation
>   *
>   * @param pkt Packet handle
>   */
> -void odp_packet_outflag_l4_chksum(odp_packet_t pkt);
> +void odp_packet_override_l4_chksum(odp_packet_t pkt);
> 
>  /**
>   * Set flag for L2 header, e.g. ethernet
> @@ -193,7 +193,7 @@ void odp_packet_outflag_l4_chksum(odp_packet_t pkt);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_l2(odp_packet_t pkt, int val);
> +void odp_packet_set_has_l2(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for L3 header, e.g. IPv4, IPv6
> @@ -201,7 +201,7 @@ void odp_packet_set_inflag_l2(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_l3(odp_packet_t pkt, int val);
> +void odp_packet_set_has_l3(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for L4 header, e.g. UDP, TCP, SCTP (also ICMP)
> @@ -209,7 +209,7 @@ void odp_packet_set_inflag_l3(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_l4(odp_packet_t pkt, int val);
> +void odp_packet_set_has_l4(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for Ethernet header
> @@ -217,7 +217,7 @@ void odp_packet_set_inflag_l4(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_eth(odp_packet_t pkt, int val);
> +void odp_packet_set_has_eth(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for jumbo frame
> @@ -225,7 +225,7 @@ void odp_packet_set_inflag_eth(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_jumbo(odp_packet_t pkt, int val);
> +void odp_packet_set_has_jumbo(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for VLAN
> @@ -233,7 +233,7 @@ void odp_packet_set_inflag_jumbo(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_vlan(odp_packet_t pkt, int val);
> +void odp_packet_set_has_vlan(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for VLAN QinQ (stacked VLAN)
> @@ -241,7 +241,7 @@ void odp_packet_set_inflag_vlan(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_vlan_qinq(odp_packet_t pkt, int val);
> +void odp_packet_set_has_vlan_qinq(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for ARP
> @@ -249,7 +249,7 @@ void odp_packet_set_inflag_vlan_qinq(odp_packet_t pkt,
> int val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_arp(odp_packet_t pkt, int val);
> +void odp_packet_set_has_arp(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for IPv4
> @@ -257,7 +257,7 @@ void odp_packet_set_inflag_arp(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_ipv4(odp_packet_t pkt, int val);
> +void odp_packet_set_has_ipv4(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for IPv6
> @@ -265,7 +265,7 @@ void odp_packet_set_inflag_ipv4(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_ipv6(odp_packet_t pkt, int val);
> +void odp_packet_set_has_ipv6(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for IP fragment
> @@ -273,7 +273,7 @@ void odp_packet_set_inflag_ipv6(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_ipfrag(odp_packet_t pkt, int val);
> +void odp_packet_set_has_ipfrag(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for IP options
> @@ -281,7 +281,7 @@ void odp_packet_set_inflag_ipfrag(odp_packet_t pkt,
> int val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_ipopt(odp_packet_t pkt, int val);
> +void odp_packet_set_has_ipopt(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for IPSec
> @@ -289,7 +289,7 @@ void odp_packet_set_inflag_ipopt(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_ipsec(odp_packet_t pkt, int val);
> +void odp_packet_set_has_ipsec(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for UDP
> @@ -297,7 +297,7 @@ void odp_packet_set_inflag_ipsec(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_udp(odp_packet_t pkt, int val);
> +void odp_packet_set_has_udp(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for TCP
> @@ -305,7 +305,7 @@ void odp_packet_set_inflag_udp(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_tcp(odp_packet_t pkt, int val);
> +void odp_packet_set_has_tcp(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for SCTP
> @@ -313,7 +313,7 @@ void odp_packet_set_inflag_tcp(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_sctp(odp_packet_t pkt, int val);
> +void odp_packet_set_has_sctp(odp_packet_t pkt, int val);
> 
>  /**
>   * Set flag for ICMP
> @@ -321,7 +321,7 @@ void odp_packet_set_inflag_sctp(odp_packet_t pkt, int
> val);
>   * @param pkt Packet handle
>   * @param val Value
>   */
> -void odp_packet_set_inflag_icmp(odp_packet_t pkt, int val);
> +void odp_packet_set_has_icmp(odp_packet_t pkt, int val);
> 
>  /**
>   * @}
> diff --git a/platform/linux-generic/odp_packet_flags.c b/platform/linux-
> generic/odp_packet_flags.c
> index 06fdeed..81622f7 100644
> --- a/platform/linux-generic/odp_packet_flags.c
> +++ b/platform/linux-generic/odp_packet_flags.c
> @@ -22,181 +22,181 @@ int odp_packet_errflag_frame_len(odp_packet_t pkt)
> 
>  /* Get Input Flags */
> 
> -int odp_packet_inflag_l2(odp_packet_t pkt)
> +int odp_packet_has_l2(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.l2;
>  }
> 
> -int odp_packet_inflag_l3(odp_packet_t pkt)
> +int odp_packet_has_l3(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.l3;
>  }
> 
> -int odp_packet_inflag_l4(odp_packet_t pkt)
> +int odp_packet_has_l4(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.l4;
>  }
> 
> -int odp_packet_inflag_eth(odp_packet_t pkt)
> +int odp_packet_has_eth(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.eth;
>  }
> 
> -int odp_packet_inflag_jumbo(odp_packet_t pkt)
> +int odp_packet_has_jumbo(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.jumbo;
>  }
> 
> -int odp_packet_inflag_vlan(odp_packet_t pkt)
> +int odp_packet_has_vlan(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.vlan;
>  }
> 
> -int odp_packet_inflag_vlan_qinq(odp_packet_t pkt)
> +int odp_packet_has_vlan_qinq(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.vlan_qinq;
>  }
> 
> -int odp_packet_inflag_arp(odp_packet_t pkt)
> +int odp_packet_has_arp(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.arp;
>  }
> 
> -int odp_packet_inflag_ipv4(odp_packet_t pkt)
> +int odp_packet_has_ipv4(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.ipv4;
>  }
> 
> -int odp_packet_inflag_ipv6(odp_packet_t pkt)
> +int odp_packet_has_ipv6(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.ipv6;
>  }
> 
> -int odp_packet_inflag_ipfrag(odp_packet_t pkt)
> +int odp_packet_has_ipfrag(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.ipfrag;
>  }
> 
> -int odp_packet_inflag_ipopt(odp_packet_t pkt)
> +int odp_packet_has_ipopt(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.ipopt;
>  }
> 
> -int odp_packet_inflag_ipsec(odp_packet_t pkt)
> +int odp_packet_has_ipsec(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.ipsec;
>  }
> 
> -int odp_packet_inflag_udp(odp_packet_t pkt)
> +int odp_packet_has_udp(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.udp;
>  }
> 
> -int odp_packet_inflag_tcp(odp_packet_t pkt)
> +int odp_packet_has_tcp(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.tcp;
>  }
> 
> -int odp_packet_inflag_sctp(odp_packet_t pkt)
> +int odp_packet_has_sctp(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.sctp;
>  }
> 
> -int odp_packet_inflag_icmp(odp_packet_t pkt)
> +int odp_packet_has_icmp(odp_packet_t pkt)
>  {
>       return odp_packet_hdr(pkt)->input_flags.icmp;
>  }
> 
>  /* Set Output Flags */
> 
> -void odp_packet_outflag_l4_chksum(odp_packet_t pkt)
> +void odp_packet_override_l4_chksum(odp_packet_t pkt)
>  {
>       odp_packet_hdr(pkt)->output_flags.l4_chksum = 1;
>  }
> 
>  /* Set Input Flags */
> 
> -void odp_packet_set_inflag_l2(odp_packet_t pkt, int val)
> +void odp_packet_set_has_l2(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.l2 = val;
>  }
> 
> -void odp_packet_set_inflag_l3(odp_packet_t pkt, int val)
> +void odp_packet_set_has_l3(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.l3 = val;
>  }
> 
> -void odp_packet_set_inflag_l4(odp_packet_t pkt, int val)
> +void odp_packet_set_has_l4(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.l4 = val;
>  }
> 
> -void odp_packet_set_inflag_eth(odp_packet_t pkt, int val)
> +void odp_packet_set_has_eth(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.eth = val;
>  }
> 
> -void odp_packet_set_inflag_jumbo(odp_packet_t pkt, int val)
> +void odp_packet_set_has_jumbo(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.jumbo = val;
>  }
> 
> -void odp_packet_set_inflag_vlan(odp_packet_t pkt, int val)
> +void odp_packet_set_has_vlan(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.vlan = val;
>  }
> 
> -void odp_packet_set_inflag_vlan_qinq(odp_packet_t pkt, int val)
> +void odp_packet_set_has_vlan_qinq(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.vlan_qinq = val;
>  }
> 
> -void odp_packet_set_inflag_arp(odp_packet_t pkt, int val)
> +void odp_packet_set_has_arp(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.arp = val;
>  }
> 
> -void odp_packet_set_inflag_ipv4(odp_packet_t pkt, int val)
> +void odp_packet_set_has_ipv4(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.ipv4 = val;
>  }
> 
> -void odp_packet_set_inflag_ipv6(odp_packet_t pkt, int val)
> +void odp_packet_set_has_ipv6(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.ipv6 = val;
>  }
> 
> -void odp_packet_set_inflag_ipfrag(odp_packet_t pkt, int val)
> +void odp_packet_set_has_ipfrag(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.ipfrag = val;
>  }
> 
> -void odp_packet_set_inflag_ipopt(odp_packet_t pkt, int val)
> +void odp_packet_set_has_ipopt(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.ipopt = val;
>  }
> 
> -void odp_packet_set_inflag_ipsec(odp_packet_t pkt, int val)
> +void odp_packet_set_has_ipsec(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.ipsec = val;
>  }
> 
> -void odp_packet_set_inflag_udp(odp_packet_t pkt, int val)
> +void odp_packet_set_has_udp(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.udp = val;
>  }
> 
> -void odp_packet_set_inflag_tcp(odp_packet_t pkt, int val)
> +void odp_packet_set_has_tcp(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.tcp = val;
>  }
> 
> -void odp_packet_set_inflag_sctp(odp_packet_t pkt, int val)
> +void odp_packet_set_has_sctp(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.sctp = val;
>  }
> 
> -void odp_packet_set_inflag_icmp(odp_packet_t pkt, int val)
> +void odp_packet_set_has_icmp(odp_packet_t pkt, int val)
>  {
>       odp_packet_hdr(pkt)->input_flags.icmp = val;
>  }
> --
> 1.8.3.2
> 
> 
> _______________________________________________
> lng-odp mailing list
> [email protected]
> http://lists.linaro.org/mailman/listinfo/lng-odp

_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to